【发布时间】:2019-09-26 10:54:24
【问题描述】:
在 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 只是被视为请求对象的上下文还是有其他含义?
【问题讨论】:
-
在这种情况下,您也不需要这样做,因为
request和user在模板中自动可用,这要归功于默认的上下文处理器。