如何在Django中获取用户名

时间:2016-01-27 21:13:30

标签: python django

我需要获取用户名以在

中显示它
for loop

我尝试过使用request.user.username和request.get_username,这不起作用,还有其他办法吗?

4 个答案:

答案 0 :(得分:3)

确保您的请求用户是经过身份验证的用户。如果未对用户进行身份验证,则使用匿名用户,在这种情况下,不存在用户名。

如果您可以在示例中包含视图和完整模板,则有助于更好地回答您的问题。

提示:检查request.user.pk以查看用户是否确实存在。 request.user.is_anonymousrequest.user.is_authenticated也可用。

参考:

https://docs.djangoproject.com/en/1.9/ref/contrib/auth/

答案 1 :(得分:2)

您要在模板中访问您需要在上下文中传递的任何内容。所以在你看来你会有像

这样的东西
def someview(request):
    template = loader.get_template('someview.html')
    context = {
        'username': request.user.username,
    }
    return HttpResponse(template.render(context, request))

在您的模板中,您可以

<span class="badge badge-success pull-right"></span>{{ username }}

或者,您可以使用上下文处理器默认情况下向模板公开请求或用户或两者 https://docs.djangoproject.com/en/dev/ref/templates/api/#context-processors

答案 2 :(得分:2)

如果您使用的是Django的内置用户管理,请确保它是properly installed

特别是,在您的设置中,您至少应该:

    'django.contrib.auth'
  • INSTALLED_APPS'django.contrib.auth.middleware.AuthenticationMiddleware'
  • MIDDLEWARE_CLASSES 模板引擎的上下文处理器中的
  • 'django.contrib.auth.context_processors.auth'

如果您使用django-admin startprojectall of these should already be in place

创建了django项目

答案 3 :(得分:1)

只是想知道如果您的视图函数参数包含&#39; request&#39;,或者您想要显示登录的用户,那么这就是您所需要的:

 <span class="badge badge-success pull-right"></span>{{ request.user }}