2014-02-12 101 views
1

我有一個名爲Group(不要與內置Django組混淆)的模型,ManyToMany字段名爲adminsdjango.contrib.auth.models.User。在我的模板中,我希望用戶能夠在管理員(管理員字段包含當前用戶)時刪除組。我目前這樣做的方式是用這樣的循環:Django模板條件刪除按鈕

{% for admin in group.admins.all %} 
    {% if user == admin %}<a href="/groups/delete/{{group.id}}/">[x]</a>{% endif %} 
{% endfor %} 

由於Django的不鼓勵通過屬性函數中的模板,我不能用在adminsfilterget功能。但我想知道是否有更直接的方法來解決這個問題,而不是循環遍歷所有管理員。

+0

你爲什麼不使用Django的用戶模型中的'is_superuser'可用的布爾? – karthikr

+0

您是否嘗試過{{如果用戶在groups.admins.all%}}? –

回答

0

Django模板support the if x in list syntax(因爲Django 1.2,根據鏈接的線程)。你可以用一個單一的if簡化您的for循環:

{% if user in groups.admins %} 
    <a href="/groups/delete/{{group.id}}/">[x]</a> 
{% endif %}