if..else настраиваемый тег шаблона

Я реализую приложение настраиваемых разрешений в своем проекте 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 %}

Я читал о теге присваивания , но я опасаюсь, что я загрязню пространство контекстных переменных этим (то есть я может перезаписать предыдущие переменные контекста разрешения). Другими словами, поскольку переменные контекста определяются на разных уровнях (представление, промежуточное ПО в моем случае, а теперь и этот тег шаблона назначения), я беспокоюсь об удобстве сопровождения.

9
задан LaundroMat 17 October 2011 в 09:05
поделиться