2011-10-21 7 views
1

テンプレートでは、現在のユーザーに基づいてモデルを照会したい私はこのような何かを持っている問題を持っている

{% if thing.can_vote %} 
    {# Review stuff #} 
{% endif %} 

現在のユーザーが投票した回数に満たないかどうかによって異なります。問題は、Djangoがメソッドにパラメータを渡すことを許可していないということです。これをきちんと達成する方法はありますか?

+0

はJinja2のにテンプレートエンジンを切り替えることを検討してください。それで '{%if thing.can_vote(request.user)%}'を実行するだけです。 –

答えて

4

custom template tag or filterを使用できます。フィルタの場合:

テンプレートで
@register.filter 
def can_vote_on(user, thing): 
    if thing.vote_set.filter(user=user).count() < 2: 
     return True 
    # (A pile of other conditions) 

{% if user|can_vote_on:thing %} 
    {# Review stuff #} 
{% endif %} 
+0

それは本当にきれいに読んで、私はそれが好きです。 –

関連する問題