如何实现只有帖子的作者才能看到删除按钮(Django-Templates)

时间:2016-03-21 11:23:06

标签: django django-templates

如何才能实现只有帖子的作者才能看到“删除按钮”和“编辑按钮”?

目前我的模板如下所示:

{% if user.is_authenticated %}
    <hr>
        <a href="{% url 'blog:delete_post' pk=post.pk %}">Delete |</a>
        <a href="{% url 'blog:post_update' pk=post.pk %}">Edit</a>
{% endif %}

我找到了一个例子,他们使用了

{% if user.is_authenticated and post.author == request.user%}

但是,即便是帖子的作者也看不到这两个按钮。我心中的所有其他内容都定义为{{post.author}},{{post.title}}等等。

我的班级帖子有一个外键作者(来自用户)。即使您只能看到按钮,实际作者也可以删除帖子,因此视图都可以正常工作。我唯一想到的就是模板。我很乐意提供任何帮助!

这些是settings.py中的context_processors:

'context_processors': [
            'django.contrib.auth.context_processors.auth',
            'django.template.context_processors.debug',
            'django.template.context_processors.i18n',
            'django.template.context_processors.media',
            'django.template.context_processors.static',
            'django.template.context_processors.tz',
            'django.contrib.messages.context_processors.messages'
]

这些是Post和UserProfile的模型:

class Post(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
    title = models.CharField(max_length=200)
    content = models.TextField()

class UserProfile(models.Model):
    user = models.OneToOneField(User)

1 个答案:

答案 0 :(得分:0)

尝试比较主键:

{% if post.author.pk == request.user.pk %}...{% endif %}