如何在 Django 中使用“get_or_create()”?

2024-01-02

我正在尝试使用get_or_create()对于我表单中的某些字段,但当我尝试这样做时收到 500 错误。

其中一行看起来像这样:

customer.source = Source.objects.get_or_create(name="Website")

我对上述代码得到的错误是:

无法分配“(, False)”:“Customer.source”必须是“Source”实例。


从文档中获取或创建 https://docs.djangoproject.com/en/stable/ref/models/querysets/#get-or-create:

# get_or_create() a person with similar first names.

p, created = Person.objects.get_or_create(
    first_name='John',
    last_name='Lennon',
    defaults={'birthday': date(1940, 10, 9)},
)

# get_or_create() didn't have to create an object.
>>> created
False

解释:要评估相似性的字段,必须在外部提及defaults。其余字段必须包含在defaults。如果发生 CREATE 事件,则会考虑所有字段。

看起来您需要返回一个元组,而不是单个变量,如下所示:

customer.source,created = Source.objects.get_or_create(name="Website")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Django 中使用“get_or_create()”? 的相关文章

随机推荐