我正尝试在表单中的某些字段中使用get_or_create,但是当我尝试这样做时,我得到了一个500错误。
其中一行看起来像这样:
customer.source = Source.objects.get_or_create(name="Website")
对于上面的代码,我得到的错误是:
Cannot assign "(<Source: Website>, False)": "Customer.source"
must be a "Source" instance.
发布于 2009-12-22 00:47:00
get_or_create
返回一个元组。
customer.source, created = Source.objects.get_or_create(name="Website")
发布于 2017-09-26 17:51:18
在@Tobu回答和@mipadi评论之后,如果对创建的标志不感兴趣,我会以一种更加pythonic的方式使用:
customer.source, _ = Source.objects.get_or_create(name="Website")
发布于 2009-12-22 00:57:10
您遇到的问题是记录在案的get_or_create
功能。
当使用"defaults“以外的关键字参数时,get_or_create
的返回值是一个实例。这就是为什么它会显示返回值中的括号。
您可以使用customer.source = Source.objects.get_or_create(name="Website")[0]
来获取正确的值。
以下是文档的链接:http://docs.djangoproject.com/en/dev/ref/models/querysets/#get-or-create-kwargs
https://stackoverflow.com/questions/1941212
复制相似问题