如果ManyToManyField为空,如何检入模型save()方法?

时间:2014-05-10 18:20:27

标签: python django many-to-many

我的模型包含字段rules = models.ManyToManyField(blank=True, null=True)aggregation = models.BooleanField(default=False)

如果规则为空,我想使aggregation = False。换句话说,如果没有输入任何规则或已经存储在数据库中,聚合字段应始终为== False。

1 个答案:

答案 0 :(得分:0)

def save(self, *args, **kwargs):
    if not self.rules:
       self.aggregation = False
    super(MyModel, self).save(*args, **kwargs)

这是你的意思吗?

编辑:我看到你可能也想检查数据库。没问题:

def save(self, *args, **kwargs):
    models = MyModel.objects.filter(rules__isnull=False).exists()
    if not self.rules and not models:
       self.aggregation = False
    super(MyModel, self).save(*args, **kwargs)