在Django中,在通过请求提供的模板中呈现数据时,我们有2个选项:
def my_view(request):
username = None
if request.user.is_authenticated:
username = request.user.username
context = {'username': username}
return render(request=request, template_name='test.html', context=context)
具有以下模板:
<p>Hello, {{ username }}<p>
def my_view(request):
if request.user.is_authenticated:
return render(request=request, template_name='test.html', context={})
具有以下模板:
<p>hello, {{ request.user.username }}</p>
在“正确性”方面,两者之间有区别吗?
第二个模板中的request
只是被视为请求对象的上下文还是其他含义?
答案 0 :(得分:1)
它们是正确的,通常来说,您最有可能遇到以下模式
def my_view(request):
user = request.user
context = {'user': user}
return render(request=request, template_name='test.html', context=context)
和
<p>hello, {{ user.username }}</p>
通常,您不通过request
,而是直接通过user
。然后,由于可能有许多相关的user
方法,因此在模板中使用了user.<something>
表示法。
但是,根据您的用例,如果您需要从用户那里获得的唯一字段是该页面上的用户名,则直接传递它没有错。