gpt4 book ai didi

python - 是否有(已经)一种方法来比较 2 个模型实例,一个字段一个字段,看它们是否相等?

转载 作者:行者123 更新时间:2023-11-28 20:30:40 27 4
gpt4 key购买 nike

我试图在我的一个测试中断言模型中的字段没有改变。我知道从哲学上这是不正确的,但由于我控制了我需要知道的所有变量,所以我只想检查我的数据库条目是否没有改变。

我愿意接受一个解决方案,该解决方案可以将其转换为未调用某些 API 的断言,这应该更新模型,但我知道 API 可能没有完整记录,所以我更愿意有一种方法可以检查所有字段值是否相等。

无论如何,我知道该怎么做,但我使用的是 django 1.6 并且 Model._meta API 尚未公开:

def assertFieldsEqual(self, instance1, instance2)
for field_name in MyModel._meta.get_all_field_names():
val1 = getattr(instance1, field_name)
if not isinstance(val1, django.db.models.Field):
continue # this excludes managers
if val1 != getattr(instance2, field_name):
return False # or raise assertion error, or whatever
return True # or don't do nothing, or whatever

那么有没有更好的办法呢?

[编辑] python 2.7

最佳答案

您可以使用 django.forms.models.model_to_dict 方法并将生成的字典与简单的 dict1 == dict2 进行比较。

关于python - 是否有(已经)一种方法来比较 2 个模型实例,一个字段一个字段,看它们是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28025713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com