Проверьте разрешение внутри шаблона в Django

могу ли я использовать проверку разрешений приложения Auth внутри шаблона в Django? (Я хочу отобразить простую форму в конце шаблона для привилегированных пользователей)

и, что более важно, Должен ли я делать это вообще или это не "путь Джанго"?

2 ответов


Если вы хотите проверить наличие разрешений в шаблонах, достаточно следующего кода:

{% if perms.app_label.can_do_something %}
<form here>
{% endif %}

где модель относится к модели, для которой пользователю нужны разрешения, чтобы увидеть форму.

см.https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions Для больше примеров.

разрешения текущего зарегистрированного пользователя хранятся в переменной шаблона {{ perms }}

(эта требуется включить следующий контекстный процессор:django.contrib.auth.context_processors.auth)


Если вам нужно больше детализации при проверке perms (например, на конкретном объекте), проверьте это расширение:http://django-authority.readthedocs.org/en/latest/check_templates/