0

我正在使用登录中间件来创建用户登录表单。

用户成功登录后,从视图中检索用户 ID 的最佳方法是什么?

创建了一个中间件.py:

class LoginMiddleware(object):
    def process_request(self, request):
        if request.path != self.require_login_path and request.user.is_anonymous():
            if request.POST:
                return login(request)
            else:
                return HttpResponseRedirect('%s?next=%s' % (self.require_login_path, request.path))
4

1 回答 1

5

一旦用户登录,他们的关联User对象就可以通过request.user您的模板自动获得。当您说“用户 ID”时,我不确定您是指用户名还是id数据库中的字面值。但是,相同的方法适用于两者:{{ request.user.username }}{{ request.user.id }}.

此外,正如上面的评论者所说,没有理由创建新的身份验证中间件,除非您需要更改登录的处理方式。否则,不要理会它并使用默认值。(根据您的中间件,这似乎是您应该做的)。

更新:没有提到要request.user在您的模板中访问,您必须传入RequestContext. 下面的例子render_to_response

from django.template import RequestContext

render_to_response('templates/mytemplate.html', {}, context_instance=RequestContext(request))
于 2011-05-12T16:19:47.353 回答