2017-04-13 105 views
0

(我是Django的新手)Django模板變量不起作用

我遇到了Django模板的問題。

cruise_details過濾器應該只返回一行,但是當我嘗試在模板中使用cruise_details.port顯示它時,不顯示任何內容。 「代碼」正確地從URL傳遞。

如果我刪除.port,只是把我跟此cruise_details在頁面上

<QuerySet [<Cruise: B724>]> 

view.py

def cruise(request, code): 

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

cruise.html

{{ cruise_details.port}} 

模型。 py

class Cruise(models.Model): 
code = models.CharField(max_length=10) 
destination = models.CharField(max_length=60) 
url = models.URLField 
ship = models.ForeignKey(Ship) 
duration = models.IntegerField 
start = models.DateField 
end = models.DateField 
added = models.DateTimeField(auto_now_add=True) 
modified = models.DateTimeField(auto_now=True) 
port = models.CharField(max_length=30) 

回答

2

的問題是,Cruise.objects.filter(code=code)返回一個列表,所以如果有很多可能的匹配,你可以修改你的模板,他們或者顯示所有

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

,如果你知道只能有那麼一個結果,你可以請使用get代替:

Cruise.objects.get(code=code) 

和您現有的模板應該可以工作。

希望這會有所幫助。

+0

使用.get做到了!非常感謝 – user2844523