簡體   English   中英

以Django表單獲取當前登錄用戶

[英]Get current logged in user in Django forms

我需要以Django形式獲取當前登錄的用戶。 我需要它來從他的電子郵件中獲取域,並相應地獲取具有相似域的其他用戶的列表。 到目前為止,這是我的代碼:

表格

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
                                                                   ])

views.py

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

您需要將請求的用戶傳遞到表單構造函數中,然后將該表單放入context 您的視圖應類似於:

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

當然,以上內容是不完整的視圖,因為您不應該只是像這樣抓住POST,但這不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM