Проверьте Пермь пользователя Django - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь использовать разрешения по умолчанию Django, чтобы показывать ссылку на страницу сообщения в блоге, только если у них есть разрешения для сообщения в блоге.

Замечательная документация Django предоставляет следующее:

Assuming you have an application with an app_label foo and a model named Bar, 
to test for basic permissions you should use:

    add: user.has_perm('foo.add_bar')
    change: user.has_perm('foo.change_bar')
    delete: user.has_perm('foo.delete_bar')
    view: user.has_perm('foo.view_bar')

Моему приложению присвоено имя about

Вот моя модель:

# models.py
class BlogPost(models.Model):
    title = models.CharField(max_length=120)
    description = models.TextField(max_length=250, null=True)
    image = models.ImageField(upload_to='blog/main')
    content = HTMLField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    draft = models.BooleanField(default=False)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("post-detail", kwargs={"pk": self.id})

Вот мой HTML, где я пытаюсь фильтровать

# base.html
          {% if user.has_perm('about.add_blogPost') %}
          <li {% if url_name == 'post' %}class="nav-item active"{% else %}class="nav-item"{% endif %}><a href="{% url 'post' %}" class="nav-link">Add Post</a></li>
          {% endif %}

Всякий раз, когда я следую этому, как написано в документации, я получаю: Could not parse the remainder: '('about.add_blogPost')' from 'user.has_perm('about.add_blogPost')'

Что я делаю не так?

1 Ответ

0 голосов
/ 30 апреля 2020

try {% if user.has_perm 'about.add_blogPost'%}

...