すべてのページ(base.html
)には、request.user
に私のクラスUserTypes
の管理者ロールがあるかどうかをチェックし、管理リンクを表示したいと考えています。現在、私はこのような何か:DjangoテンプレートでM2Mの値をチェックする方法はありますか?
{% if user.profile.user_types.all %}
{% for user_type in user.profile.user_types.all %}
{% if user_type.name == "ad" %}
<li>
<a href="{% url admin:index %}" class="round button dark ic-settings image-left">Admin</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
user.profile
は単に私のUserProfile
にDjangoのUser
から起こっています。
しかし、これは少し冗長で厄介なようです。もっと簡単な方法はありますか?たぶん私は自分のカスタムコンテキストプロセッサを書くこととis_admin
か何かのように変数を渡すが、私はあなたがあなたのUserProfile
モデルがモデルにビジネスロジックを移動する方法is_admin
を追加することができます
「User.is_superuser」に頼っているのではないでしょうか。または、 "管理者"がDjangoの管理者 'User.is_staff'にアクセスするユーザーを意味する場合正当な理由がないのに複雑さを増やしているようです。 –