2017-04-13 13 views
0

(私はDjangoを初めて使う)Djangoテンプレート変数が機能しない

私のDjangoテンプレートに問題があります。

cruise_detailsフィルタは1つの行のみを返す必要がありますが、たとえばcruise_details.portなどのテンプレートでこれを表示しようとすると、何も表示されません。 "code"はURLから正しく渡されています。

私は.portを削除し、ちょうど私がページ

<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}} 

モデルにこれを提示していますcruise_detailsを置く場合。 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

関連する問題