Причина, по которой он работает не так, как вы хотите, состоит в том, что процессор шаблонов видит тег {% if%} и начинает обрабатывать его как тег {% if%}, а это не то, что вы хотели,Похоже, вы хотели что-то вроде сложного выражения, где оно будет оценивать содержимое if, а затем использовать его для условной обработки.
Я не слишком уверен, что это то, что вы хотите использовать, ноЯ думаю, что более простым решением было бы использование встроенных разрешений в Django.У каждого объекта пользователя уже есть права доступа, и добавление и удаление новых разрешений также довольно просто.https://docs.djangoproject.com/en/dev/topics/auth/#permissions - это ссылка, которую вы хотите проверить.Итак, вы должны установить некоторые разрешения в своих моделях или на лету в представлении, а затем на стороне шаблона все, что вам нужно сделать, это сказать
# Note that perms is a shortcut. Its the same as saying user.has_perm('')
{% if perms.has_that_permission %}
НО, даже круче, чем этоПолагаю, у каждого пользователя уже есть is_staff и is_superuser.Поэтому, если они в настоящее время не используются вашим приложением, я не вижу вреда в использовании is_staff, по крайней мере, для предоставления пользователям разрешений на вашем сайте.Убедитесь, что вы не предоставляете им разрешения суперпользователя, поскольку будучи суперпользователем означает, что любой вызов user.has_perm () вернет TRUE, несмотря ни на что.