【发布时间】:2021-09-28 02:52:56
【问题描述】:
我正在尝试根据加载客户特定表单时获取特定查询集,仅显示该客户的姓名(嵌入为 ID 字段)、其各自的位置和用户。
这个想法是从多选框中选择一个用户和任意数量的位置。
我尝试将 ID 作为 kwarg 传递,但收到 KeyError。我已经尝试了在网上找到的 kwarg.pop('id') 和同样的问题。有什么建议吗?
forms.py
class LocGroupForm(forms.ModelForm):
class Meta:
model = LocationsGroup
fields = ('group_name', 'slug', 'customer', 'location', 'user_id',)
def __init__(self, *args, **kwargs):
qs = kwargs.pop('id')
super(LocGroupForm, self).__init__(*args, **kwargs)
self.fields['customer'].queryset = Customers.objects.get(pk=qs)
self.fields['location'].queryset = CustomerLocations.objects.filter(customer_id=qs)
self.fields['user_id'].queryset = CustomerUsers.objects.filter(customer_id=qs)
这是我的看法。这只是一个通用视图
views.py
class LocGroupCreate(LoginRequiredMixin, CreateView):
form_class = LocGroupForm
template_name = 'ohnet/a_gen_form.html'
该模板是我用于所有表单的干模板 - 诚然,我主要是从教程中偷来的东西
{% extends "ohnet/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
{% load static %}
<div class="container">
<h1>{{ title }}</h1>
<form method="POST">
{% csrf_token %}
{{ form|crispy }}
<input type="submit" name="submit" value="Submit">
</form>
</div>
{% endblock content %}
这是来自表单加载的 KeyError。
【问题讨论】:
-
表示你构造了一个
LocGroupForm,这里没有传递id参数... -
但 ID 在调用页面的参数中。这是客户 ID。
-
你能分享你得到这个错误的视图吗...? edit问题。
-
我已经更新了帖子
标签: django django-models django-views django-forms django-queryset