一次单击即可更新一组Django对象

一次单击即可更新一组Django对象,django,post,checkbox,request,Django,Post,Checkbox,Request,我有一个“未读”字段设置为default=True的消息模型: class Message(models.Model): user = models.ForeignKey(Profile, on_delete=models.CASCADE) sender = models.ForeignKey(Profile, on_delete=models.CASCADE) message = models.TextField(blank=True) unread = mod

我有一个“未读”字段设置为default=True的消息模型:

class Message(models.Model):
    user = models.ForeignKey(Profile, on_delete=models.CASCADE)
    sender = models.ForeignKey(Profile, on_delete=models.CASCADE)
    message = models.TextField(blank=True)
    unread = models.BooleanField(default=True)
我希望能够一次选择一组这些对象,并在单击时更改它们的未读状态。它们中的每一个当前都显示在一个复选框旁边,包装在一个表单中:

<form action="{% url 'users:read_message' %}" method="post">
    {% csrf_token %}
    <button type="submit">Mark as read</button>

    {% for msg in messages %}
        <input type="checkbox" name="message" value="{{ msg.id }}">
        <p>{{ msg.message }}</p>
    {% endfor %}
</form>

这是工作,但我还需要第二种形式,以改变状态回未读=假,理想情况下,第三个能够删除他们。由于HTML禁止使用嵌套表单,如何在不显示三个消息循环的情况下实现这一点

我能够在表单上使用三个提交按钮解决问题,每个按钮都包含
formaction
属性

这是否回答了您的问题?顺便说一句,您的输入超出了
的范围,这导致
帖子变为空。谢谢,这帮了我很大的忙,尽管这给我带来了一个新问题。我之前没有提到为了节省空间而需要的其他表单,但现在有必要将它们包括在内。请看我的最新问题
def message_unread(request):
    if request.method == 'POST':
        selected_messages = request.POST.getlist('message')
        Message.objects.filter(id__in=selected_messages).update(unread=True)
        return redirect('users:messages')
    return redirect('users:my_profile')