【发布时间】:2019-09-19 09:44:28
【问题描述】:
当ManyToMany 字段(标记)发生变化时,我正在尝试切换布尔字段(标记)。我该怎么做?
class Tagger(models.Model):
tagged = models.BooleanField(default = False)
appName = models.ForeignKey(AppName,on_delete=models.CASCADE, null=True, blank=True)
tag = models.ManyToManyField(Tag,blank=True)
当“标签”中有输入时,我希望“标签”字段切换为 True 反之亦然。
【问题讨论】:
-
输入后,检查变量“appName”。如果不为 null,则更改 'tagged' 的状态
-
为什么要改变。如果之前和之后都有标签,标签被删除或更改怎么办?此外,如果您正在做我认为您正在做的事情,那么信息是多余的并且很容易查询:
tag__isnull=False对应于任何查询中的tagged=True。 -
您通常会使用信号。
-
正如@schwobaseggl 和熊布朗所说,永远不要为可以从数据库中现有数据轻松计算的数据创建字段。它只会让人头疼。