在下面的详细视图中,是否可以将模型中的布尔值设置为false?
我查看了django文档(queryset)中的一些类似于.set()
方法的东西,它似乎存在,但不适用于这个特定的情况。
如何在我的视图中切换unread
布尔值?在
另外,我在这里误解了什么?最好/合适的方法是什么?在
在模型.py公司名称:
class Message(models.Model):
recipient = models.ForeignKey(CustomUser, on_delete = models.CASCADE,related_name = 'recipient',null = True)
sender = models.ManyToManyField(CustomUser,related_name = 'messages')
date = models.DateTimeField(auto_now_add=True, blank=True)
subject = models.CharField(max_length = 1000, blank = True)
message = models.TextField(blank=True, null=True)
unread = models.BooleanField(default = True)
在视图.py公司名称:
^{pr2}$
您不需要使用
.set(..)
调用来设置模型实例的字段,而是通过分配给属性(在窗帘后面,Django修补了__get__
和__set__
函数)。在因此,我们可以通过从上下文中检索
message
对象(使用context['message_detail']
)来获取它,然后更改它的状态,最后将更新后的版本保存到数据库中。例如:但是,我不知道在detail视图中将消息标记为read是否是一个好主意,它可能会导致代码重复,这通常不是一个好主意。在
相关问题 更多 >
编程相关推荐