Как заставить django-правила работать в шаблонах? - PullRequest
0 голосов
/ 20 марта 2019

При использовании Django-Rules , вы можете проверить разрешения в представлениях.Но мой всегда возвращает ложь.Код в приведенном ниже примере всегда отображает 'bar', но должен отображать 'foo':

  {% extends 'home/base.html' %}
  {% load rules %}
  {% has_perm 'anApp.can_access_something' user as can_access_something %}

  {% block content %}
      {% if can_access_something %}
          <p>foo</p>
      {% else %}
          <p>bar</p>
      {% endif %}
      ...
  {% endblock %}

Мой rules.py выглядит так:

@rules.predicate
def testrule(user):
    return True

rules.add_perm('anApp.can_access_something', testrule)

Поэтому всегда будет возвращать true.

1 Ответ

2 голосов
/ 20 марта 2019

Следующая строка должна быть в блоке:

{% has_perm 'anApp.can_access_something' user as can_access_something %}

Это будет правильно отображать 'foo':

{% extends 'home/base.html' %}
{% load rules %}

{% block content %}
    {% has_perm 'anApp.can_access_something' user as can_access_something %}
    {% if can_access_something %}
        <p>something</p>
    {% else %}
        <p>something else</p>
    {% endif %}
    ...
{% endblock %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...