Я не могу получить разрешения на работу в шаблонах django, которые загружаются с использованием inclusion_tag
.тег шаблона и разрешения не работают
{% if perms.myapp.foo %}
<p>In lookup works, too.</p>
{% endif %}
Вышеуказанное прекрасно работает в моем «основном» шаблоне, который вызывается из моего представления.
Однако, если я использую тот же код в шаблоне inclusion_tag
, он не работает. Я подумал, может быть, это потому, что теги не прошли request
?
В django doco here указано, что разрешения пользователей хранятся в переменной шаблона {{ perms }}
. Разве это не делается для пользовательских тегов? Я предполагаю, что этот должен работать, не могу себе представить, почему это было бы по дизайну?
Пользователи с статусом «суперпользователя» также терпят неудачу, что имеет смысл, если отсутствует {{ perms }}
.
Я просмотрел takes_context
doco link here, но не смог выполнить эту работу. Не уверен, что это приведет меня к неправильному пути?
======== Обновлено ==============================
- Фигурный он переместил мое обновление в «Ответ» ниже.
Вы должны использовать 'takes_context', чтобы вы могли получить доступ к' perms'. Пожалуйста, покажите свой тег включения. – Alasdair
Спасибо @Alasdair, я понял это с вашим подталкиванием в правильном направлении и добавил деталь к моему вопросу выше. Не стесняйтесь отвечать «Ответ», и я могу отметить, что он принят. – James
Рад, что вы это поняли. Я мог бы добавить ответ, но было бы лучше, если бы вы добавили свое решение выше в качестве ответа. Вы можете ответить на свои вопросы о переполнении стека. – Alasdair