모든 페이지 (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
에 장고의 User
에서 것입니다 : 현재 내가 이런 일을한다.
그러나 이것은 약간 장황하고 clunky 것 같습니다. 더 간단한 방법이 있습니까? 어쩌면 내가 내 자신의 사용자 정의 컨텍스트 프로세서를 작성하고 is_admin
이나 뭐 같은 변수를 전달,하지만 당신은 당신의 UserProfile
모델은 모델에 비즈니스 로직을 이동하는 방법 is_admin
을 추가 할 수 있습니다
아마도 'User.is_superuser'를 신뢰하지 않는 이유는 무엇입니까? 또는 "관리자"가 장고 관리자'User.is_staff'에 액세스 할 수있는 사용자를 의미 할 경우. 정당한 이유없이 복잡한 것을 추가하는 것처럼 보입니다. –