Django型号don';如果条件满足,则不保存
仅当满足条件时,我才尝试保存Django型号don';如果条件满足,则不保存,django,django-models,Django,Django Models,仅当满足条件时,我才尝试保存MyModel的实例,在我的情况下,仅当我的模型字段的子对象相等时,我才想保存,例如: def save(self, *args, **kwargs): if self.field1.obj == self.field2.obj: super(MyModel, self).save(*args, **kwargs) 我尝试了上面的代码,但当字段中的obj不相同时,它仍然保存 为什么在没有调用save method fr
MyModel
的实例,在我的情况下,仅当我的模型字段的子对象相等时,我才想保存,例如:
def save(self, *args, **kwargs):
if self.field1.obj == self.field2.obj:
super(MyModel, self).save(*args, **kwargs)
我尝试了上面的代码,但当字段中的obj
不相同时,它仍然保存
谢谢大家的评论,在我的测试中我使用了
modelInstance = MyModelFactory.create(field1=field1, field2=field2)
assertNotIsInstance(modelInstance, MyModel)
即使不保存到数据库,它也总是返回一个未保存的实例
当我更新我的测试以进行检查时
assertEqual(0, MyModel.objects.count())
成功了
很抱歉提出这个问题。谢谢大家的评论,在我的测试中,我使用了
modelInstance = MyModelFactory.create(field1=field1, field2=field2)
assertNotIsInstance(modelInstance, MyModel)
即使不保存到数据库,它也总是返回一个未保存的实例
当我更新我的测试以进行检查时
assertEqual(0, MyModel.objects.count())
成功了
很抱歉出现此问题。它不应保存。在python中,比较两个相等的对象对于您想要实现的目标来说也是非常重要的。对于它的价值,您可以做其他事情:引发异常并查看是否调用该异常保存方式?在管理层?不幸的是,有很多方法可以绕过Django的
model.save()
方法,包括一些管理操作。康迪塞也是。它不应该保存。在python中,比较两个相等的对象对于您想要实现的目标来说也是非常重要的。对于它的价值,您可以做其他事情:引发异常并查看是否调用该异常保存方式?在管理层?不幸的是,有很多方法可以绕过Django的model.save()
方法,包括一些管理操作。还有,资产负债表从哪里来?资产负债表从哪里来??