如果满足条件,Django Model不会保存

时间:2015-10-22 17:39:49

标签: django django-models

我正在尝试仅在满足条件的情况下保存MyModel的实例,在我的情况下,我想保存我的模型字段的子对象相等,例如:

    def save(self, *args, **kwargs):
        if self.field1.obj == self.field2.obj:
            super(MyModel, self).save(*args, **kwargs)

我尝试了上面的代码,当字段中的obj不相同时,它仍然可以保存。

  1. 为什么在没有调用super的save方法时它仍在保存?
  2. 是否可以在我的示例中设置else语句以明确说明 DON' T SAVE

1 个答案:

答案 0 :(得分:0)

感谢大家的评论,在我的测试中我正在使用

modelInstance = MyModelFactory.create(field1=field1, field2=field2)
assertNotIsInstance(modelInstance, MyModel)

即使它没有以某种方式保存到数据库,它总是返回未保存的实例。

当我更新我的测试以进行检查时。

assertEqual(0, MyModel.objects.count())

有效。

抱歉这个noob问题。