我正在尝试为登录用户获取first_name和last_name。我可以得到它们,但它们显示为:
<QuerySet [{'first_name': 'steven'}]>
我想只显示史蒂文
这是视图功能:
def user_profile(request):
username = None
if request.user.is_authenticated():
username = request.user.username
pk = request.user.id
first_name = MyUser.objects.filter(pk=pk).values('first_name')
context = {
'username': username,
'pk' :pk,
'first_name': first_name,
}
return render(request, 'path/to/user_profile.html', context)
在模板文件中:
{{first_name}}
答案 0 :(得分:2)
您使其变得相当复杂:request.user
是 User
对象。因此,您可以直接从中获取.first_name
和.last_name
:
def user_profile(request):
if request.user.is_authenticated():
context = {
'username': request.user.username,
'pk': request.user.pk,
'first_name': request.user.first_name,
}
else:
context = {
'username': None,
'pk' : None,
'first_name': None,
}
return render(request, 'path/to/user_profile.html', context)
所以这个实例已经已经加载了。当然你可以用查询来获取它。但为什么重复工作?