在模板中:
<h4>
{% if data.wine_one %}
{{ data.wine_one.title }}
{% elif data.news_one %}
{{ data.news_one.title }}
{% endif %}
</h4>
我保证data.wine_one
存在,因为在views.py
我打印出来了。
但是在模板中它没有显示data.wine_one.title
,我使用data.wine_one != None
也无法判断它。
修改
在views.py
:
def getData():
banner = models.Banner.objects.filter(fk_info=1)
info = models.Info.objects.all().first()
aboutus = models.AboutUs.objects.all().first()
winery = models.Winery.objects.all()[:3]
winery_consult = models.WineryConsult.objects.all()[:4]
data = {
'banner': banner,
'info': info,
'aboutus': aboutus,
'winery': winery,
'winery_consult': winery_consult,
}
return data
def productdetails(request, nid):
data = getData()
wine_one = models.Winery.objects.filter(id=nid).first()
data['wine_one'] = wine_one
print (data['wine_one'].title) # there ouput the "gaoliangjiu"
return render(request, 'article_list_content.html', data)
答案 0 :(得分:0)
您误解了模板上下文的工作原理。
模板中没有名为data
的元素;这只是您在视图中用于构建上下文的局部变量。在模板中,您只需直接引用该对象的键。所以它应该是:
{% if wine_one %}
{{ wine_one.title }}
{% elif news_one %}
{{ news_one.title }}
{% endif %}