Skip to main content
 首页 » 编程设计

python之无法让我的删除按钮链接显示在 Django 中

2025年05月04日27lhb25

我无法弄清楚我的代码有什么问题才能显示我的删除消息链接。非常感谢所有帮助。

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 %}