Django模板变量不起作用

时间:2017-04-13 16:29:44

标签: django templates

(我是Django的新手)

我的Django模板有问题。

cruise_details过滤器应该只返回一行,但是当我尝试使用cruise_details.port在模板中显示它时,没有显示任何内容。 “代码”正确地从URL传递。

如果我删除了.port并且只是放了cruise_details,我会在页面上看到这个

sys.argv

view.py

<QuerySet [<Cruise: B724>]>

cruise.html

def cruise(request, code):

return render(request, 'cruise.html', {
        'cruise_details': Cruise.objects.filter(code=code)
})

models.py

{{ cruise_details.port}}

1 个答案:

答案 0 :(得分:3)

问题是Cruise.objects.filter(code=code)会返回一个列表,所以如果有很多可能的匹配项,您可以修改模板以显示所有匹配项

{% for cruise_detail in cruise_details %}
    {{ cruise_details.port }}
{% endfor %}

或者,如果您知道只能有一个结果,那么您可以改为使用get

 Cruise.objects.get(code=code)

并且您现有的模板应该有效。

希望这有帮助。