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


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

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

2 56

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)

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