在Django表单中获取当前登录用户

2024-10-02 00:36:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在Django表单中获取当前登录的用户。我需要它从他的电子邮件中获取域,并相应地获取具有类似域的其他用户的列表。以下是我目前为止的代码:

表单.py

class AuthUserCheckbox(forms.Form):

    choice = forms.MultipleChoiceField(choices=[], widget=forms.CheckboxSelectMultiple, required=True)

    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user')
        self.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.all()
                                                                   if not i.is_active and
                                                                   self.user_email in i.email
                                                                   ])

视图.py

^{pr2}$

Tags: 用户inpyself表单initemailargs
1条回答
网友
1楼 · 发布于 2024-10-02 00:36:38

您需要将请求的用户传递到表单构造函数中,然后将该表单放入context。您的视图需要看起来像:

@login_required
def auth_users(request):
    form = AuthUserCheckbox(request.POST, user=request.user)
    return render(request, 'todoapp/auth_users.html', context={'form': form})

当然,以上是一个不完整的观点,因为你不应该像那样抓住帖子,但这不是问题所在。在

相关问题 更多 >

    热门问题