我如何将上下文数据(int他的情况下profile_total变量)创建在我的一个视图到另一个应用程序的html模板?这是我的代码:
app1.views.py
def view_profile(request):
profile_total = UserProfile.objects.all().count()
return render(request, 'profile/user_profile.html', {'profile_total': profile_total})
app2.stats.html
<div class="container">
<h1> Show </h1>
Profile submitted: {{ profile_total }}
</div>
现在它只显示一个空格,而不是提交的配置文件的计数。谢谢大家的帮助!
您可能正在寻找一个上下文处理器。这个函数将在每次渲染模板时运行,我们可以使用这样的上下文处理器:
#app_name/context_processors.py
def profile_total(request):
fromapp_name.models import UserProfile
return {'profile_total': UserProfile.objects.all().count}
我们不做调用.count()
method [Django-doc]在这里延迟查询的求值。这样,我们将只执行数据库查询,如果你渲染profile_total
在模板。
现在我们可以用;
注册上下文处理器# settings.py
# …
TEMPLATES = [
{
# …,
'OPTIONS': {
'context_processors': [
# …,
'app_name.context_processors.profile_total'
],
},
},
]
,然后我们可以使用profile_total
在所有的模板,如果我们渲染它与{{ profile_total }}
。