我需要获取用户名以在
中显示它for loop
我尝试过使用request.user.username和request.get_username,这不起作用,还有其他办法吗?
答案 0 :(得分:3)
确保您的请求用户是经过身份验证的用户。如果未对用户进行身份验证,则使用匿名用户,在这种情况下,不存在用户名。
如果您可以在示例中包含视图和完整模板,则有助于更好地回答您的问题。
提示:检查request.user.pk
以查看用户是否确实存在。 request.user.is_anonymous
和request.user.is_authenticated
也可用。
答案 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 startproject
,all of these should already be in place
答案 3 :(得分:1)
只是想知道如果您的视图函数参数包含&#39; request&#39;,或者您想要显示登录的用户,那么这就是您所需要的:
<span class="badge badge-success pull-right"></span>{{ request.user }}