如何才能实现只有帖子的作者才能看到“删除按钮”和“编辑按钮”?
目前我的模板如下所示:
{% 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)
答案 0 :(得分:0)
尝试比较主键:
{% if post.author.pk == request.user.pk %}...{% endif %}