[英]Need help ModelMultipleChoiceField error in Django
I am using a ModelMultipleChoiceField to do something but I am getting an error saying: 我正在使用ModelMultipleChoiceField做某事,但出现错误:
AttributeError at /auth_users/
'MultipleChoiceField' object has no attribute 'all'
My form is: 我的表格是:
class AuthUserCheckbox(forms.Form):
choice = forms.ModelMultipleChoiceField(queryset=User.objects.none(), widget=forms.CheckboxSelectMultiple, required=True)
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user')
user_email = self.user.email.split('@')[1]
super(AuthUserCheckbox, self).__init__(*args, **kwargs)
self.fields['choice'].queryset = forms.MultipleChoiceField(
choices=[
(i.email, i.email)
for i in User.objects.filter(
is_active=False,
email__icontains=user_email
)
]
)
My view is: 我的看法是:
@login_required
def auth_users(request):
if request.method == 'POST':
form = AuthUserCheckbox(request.POST, user=request.user)
if form.is_valid():
AuthUserCheckbox.auth_users(form)
return render(request, 'todoapp/success.html')
else:
return HttpResponse('<h3>Authorization failed</h3>')
return render(request, 'todoapp/auth_users.html', context={'form': AuthUserCheckbox(user=request.user)})
Where am I going wrong ? 我要去哪里错了? this error has been bugging me a lot.
这个错误困扰着我很多。
You assign a MultipleChoiceField
to the queryset of your ModelMultipleChoiceField
, but you need to assign a queryset. 您将
MultipleChoiceField
分配给ModelMultipleChoiceField
的queryset,但是您需要分配一个queryset。
For example like that: 例如这样的:
class AuthUserCheckbox(forms.Form):
...
def __init__(self, *args, **kwargs):
...
self.fields['choice'].queryset = User.objects.filter(
is_active=False,
email__icontains=user_email,
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.