创建或找到get_or_create对象?

时间:2018-12-27 18:40:02

标签: django

我想在某些视图中使用get_or_create,我想知道它是制成还是找到?

其中一行如下:

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

2 个答案:

答案 0 :(得分:3)

您可以看看get_or_create()。官方文档中的示例;

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

如果找到对象,则get_or_create()返回该对象的元组和False。

然后检查created变量;

In [15]: created
Out[15]: False 
# so, `get_or_create()` didn't create an object.

答案 1 :(得分:1)

get_or_create总是返回元组。 第一个值是对象 第二个是Boolean,如果第二个值为True,则表示对象已创建,否则对象已存在。