我有一个页面,显示一个消息列表,每个消息都有一个复选框。我希望能够选择其中一个或多个并切换其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)
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 %}
以下是我的网址:
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
这带来了一个属性错误'list' object has no attribute 'values_list'
有人能解释一下我做错了什么吗
目前没有回答
相关问题 更多 >
编程相关推荐