@BogBel

Как в template использовать собственный фильтр(Django,Python)?

В базе данных хранятся группы (всего две)
1)админы
2)юзеры
Надо из шаблона в зависимости от того, является ли аутентифицированный юзер учатником группы админов или нет, отображать или скрывать кнопку доступа в панельку.
register = template.Library()


@register.filter(name='has_group')
def has_group(user, group_name):
    group = Group.objects.get(name=group_name)
    return True if group in user.groups.all() else False

И штмл
{% block content %}
<header class="navbar navbar-inverse navbar-fixed-top bs-docs-nav" role="banner">
  <div class="container">
    <div class="navbar-header">
      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a href="./" class="navbar-brand">Web App</a>
    </div>
    <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
      <ul class="nav navbar-nav">
        <li>
          <a href="#">Getting started</a>
        </li>

        <li>
          <a href="#">Components</a>
        </li>
        {% if{{ request.user|has_group:"admins"}} %}
        <li>
          <a href="/admin_panel/">Admin Panel</a>
        </li>
        {% endif %}
          {% if request.user.is_authenticated%}
        <li class="active">
          <a href="/login">Logout</a>
        </li>
          {% else %}
          <li class="active">
          <a href="/logout">Login</a>
        </li>
          {% endif %}
      </ul>
    </nav>
  </div>
</header>
{% endblock %}

А именно проблема связана вот с этим участком
{% if{{ request.user|has_group:"admins"}} %}
        <li>
          <a href="/admin_panel/">Admin Panel</a>
        </li>
        {% endif %}
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
stackoverflow.com/questions/20469174/whats-the-dif...

"группа админов" звучит странно есть staff и есть суперюзер
Зачем множить сущности?

{% if request.user.is_staff %}
<li>
   <a href="{% url "staff"%}">Admin Panel</a>
</li>
{% endif%}

{% if request.user.is_superuser %}
<li>
   <a href="{% url "admin"%}">Admin Panel</a>
</li>
{% endif%}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы