我正在开发一个webapp,其中一个域的管理员负责注册与他相同域的其他用户。单击“授权”时无法授权用户。你知道吗
这是我的表单.py:
class AuthUserCheckbox(forms.Form):
choice = forms.MultipleChoiceField(choices=[], 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'] = forms.MultipleChoiceField(choices=[(i.id, i.email)
for i in User.objects.filter(is_active=False, email__icontains=user_email)])
这是我的视图.py:
@login_required
def authorize_final(request):
if request.method == 'POST':
authorize_users = AuthUserCheckbox(data=request.POST, user=request.user)
if authorize_users.is_valid():
email_list = authorize_users.cleaned_data.get('choice[]')
for i in email_list:
if i.is_active == False:
i.is_active = True
return HttpResponse('<h3>Authorized successfully</h1>')
else:
return HttpResponse('<h3>Authorization failed</h3>')
else:
return HttpResponse('<h3>Post request error</h3>')
试试这个
代码有一些问题。你知道吗
首先,你得到的错误是由于语法问题。另外,您将
User.objects.all()
视为普通列表,而不需要这样做。您可以直接使用queryset,如以下代码所示:在这里,我直接查询电子邮件域是否存在于用户的电子邮件中,并检查用户是活动的还是节点的。你知道吗
第二,在视图中,您可以从窗体的cleaned data访问选项,如下所示:
相关问题 更多 >
编程相关推荐