我无法弄清楚我的代码有什么问题才能显示我的删除消息链接。非常感谢所有帮助。
View .py
def remove_message(request, message_id):
Message.objects.filter(id=message_id, user=request.user).delete()
return redirect(reverse('dashboard:show', args=user_id))
显示.html
{% for message in messages%}
<div class="message">
<p class='bg-primary wall_content'><strong>{{message.messageuser.first_name}} wrote:</strong></p>
<p class='wall_content'>{{message.message}}</p>
{% if message.id == request.user %}
<a href='{% url "dashboard:remove_message" message.id %}'>Delete Message</a>
{% endif %}
{% endfor %}
消息模型:
class Message(models.Model):
message = models.CharField(max_length=1000)
walluser = models.ForeignKey(User, related_name='userwall')
messageuser = models.ForeignKey(User, related_name='usermessage')
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
请您参考如下方法:
问题出在您的模板代码中,在 if 条件中:
{% if message.id == request.user %}
这里message.id总是不等于request.user 所以你需要检查这个条件并根据你的模型更新你的代码。 像这样:
{% for message in messages %}
<div class="message">
<p class='bg-primary wall_content'><strong>{{message.messageuser.first_name}} wrote:</strong></p>
<p class='wall_content'>{{message.message}}</p>
{% if message.messageuser.id == request.user.id %}
<a href='{% url "dashboard:remove_message" message.id %}'>Delete Message</a>
{% endif %}
{% endfor %}
