Python 如何在Django中使用复选框更新对象列表

Python 如何在Django中使用复选框更新对象列表,python,django,checkbox,django-queryset,attributeerror,Python,Django,Checkbox,Django Queryset,Attributeerror,我有一个页面,显示一个消息列表,每个消息都有一个复选框。我希望能够选择其中一个或多个,并切换其未读状态 我有一个消息模型: class Message(models.Model): user = models.ForeignKey(Profile, on_delete=models.CASCADE) sender = models.ForeignKey(Profile, on_delete=models.CASCADE) message = models.TextFiel

我有一个页面,显示一个消息列表,每个消息都有一个复选框。我希望能够选择其中一个或多个,并切换其
未读状态

我有一个消息模型:

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)
my messages.html如下所示:

<ul>
    <li><a href="{% url 'users:read_message' %}">Mark as read</a></li>
    <li><a href="{% url 'users:unread_message' %}">Mark as unread</a></li>
</ul>

{% for msg in messages %}
    <input type="checkbox" name="message" value="{{ msg.id }}">
    <p>{{ msg.message }}</p>
{% endfor %}
我正在努力解决的是如何将所选消息传递给视图。以下是我迄今为止所做的尝试:

class MessageRead(UpdateView):
    model = Message
    template_name = 'users/messages.html'
    success_url = 'users/messages.html'

    def get_queryset(self):
        message = self.request.GET.getlist('message').values_list('pk', flat=True)
        message.update(unread=False)
        return message

class MessageUnRead(UpdateView):
    model = Message
    template_name = 'users/messages.html'
    success_url = 'users/messages.html'

    def get_queryset(self):
        message = self.request.GET.getlist('message').values_list('pk', flat=True)
        message.update(unread=True)
        return message
这会出现一个AttributeError
“list”对象没有属性“values\u list”
有人能解释一下我做错了什么吗

class MessageRead(UpdateView):
    model = Message
    template_name = 'users/messages.html'
    success_url = 'users/messages.html'

    def get_queryset(self):
        message = self.request.GET.getlist('message').values_list('pk', flat=True)
        message.update(unread=False)
        return message

class MessageUnRead(UpdateView):
    model = Message
    template_name = 'users/messages.html'
    success_url = 'users/messages.html'

    def get_queryset(self):
        message = self.request.GET.getlist('message').values_list('pk', flat=True)
        message.update(unread=True)
        return message