正确的方式使用GET_或_CREATE?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我试着用GET_或_在表单中创建一些字段,但是当我尝试这样做时,我会得到一个500错误。

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

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

Cannot assign "(<Source: Website>, False)": "Customer.source" 
   must be a "Source" instance.
提问于
用户回答回答于

# 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

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

customer.source,created = Source.objects.get_or_create(name="Website")
用户回答回答于

get_or_create返回元组。

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

扫码关注云+社区