如何解决如何在Django中使用复选框更新对象列表
我有一个页面,显示一个消息列表,每个消息都有一个复选框。我希望能够选择其中一个或多个并切换其unread
状态。
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)
我的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 %}
这是我的网址:
path('read-message/',MessageRead.as_view(),name='read_message'),path('unread-message/',MessageUnRead.as_view(),name='unread_message'),
我正在努力的是如何将选定的消息传递到视图。到目前为止,这是我尝试过的事情:
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' object has no attribute 'values_list'
,有人可以解释我在做什么错吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。