Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django型号don';如果条件满足,则不保存_Django_Django Models - Fatal编程技术网

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
不相同时,它仍然保存

  • 为什么在没有调用save method from super时它仍在保存
  • 是否可以在我的示例中设置一个else语句来明确告诉不要保存

  • 谢谢大家的评论,在我的测试中我使用了

    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()
    方法,包括一些管理操作。还有,资产负债表从哪里来?资产负债表从哪里来??