簡體   English   中英

在Django的上下文處理器中設置自定義用戶對象

[英]Setting custom user object in context processor in django

我有一個自定義的用戶模型。 成功登錄后,我將在HttpResponseRedirect和模板中獲取匿名用戶。 如何獲得登錄用戶?

登錄視圖:

class LoginFormView(View):
    form_class = UserLoginForm
    user_model = get_user_model()
    template_name = 'account/login.html'

    def get(self, request, *args, **kwargs):
        form = self.form_class
        return render(request, self.template_name, {'form':form})

    def post(self, request, *args, **kwargs):
        email = request.POST['email']
        password = request.POST['password']
        user = authenticate(email=email, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return HttpResponseRedirect(reverse('home'))
        else:
            messages.error(request, 'Please enter correct email and password!')
            return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))

如果您啟用了請求模板上下文處理器 ,則可以使用{{ request.user}}訪問模板中的用戶。

其次,請確保您要導入的是登錄功能而不是登錄視圖 它應該是:

from django.contrib.auth import login

暫無
暫無

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

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