Я реализую приложение настраиваемых разрешений в своем проекте Django, и я не понимаю, как реализовать настраиваемый тег шаблона, который проверяет разрешения зарегистрированного пользователя для конкретного экземпляра объекта и показывает фрагмент HTML по результатам проверки.
Теперь у меня есть (псевдокод):
{% check_permission request.user "can_edit" on article %}
{% endcheck %}
('check_permission' - мой собственный тег шаблона).
Тег шаблона принимает пользователя, разрешение и экземпляр объекта и возвращает вложенный HTML (форму). В настоящее время это нормально работает.
Однако я хотел бы сделать что-то вроде:
{% if check_permission request.user "can_edit" on article %}
{% else %}
{{ article }}
{% endif %}
Я читал о теге присваивания , но я опасаюсь, что я загрязню пространство контекстных переменных этим (то есть я может перезаписать предыдущие переменные контекста разрешения). Другими словами, поскольку переменные контекста определяются на разных уровнях (представление, промежуточное ПО в моем случае, а теперь и этот тег шаблона назначения), я беспокоюсь об удобстве сопровождения.