[英]get_or_create: is it a 'get' or a 'create'?
AFAIK,与django的get_or_create()
不同,peewee的Model.get_or_create()
不返回表示创建的标志。 有没有一种好的方法来检查是否由get_or_create()
返回的实例是新创建的?
谢谢
根据源代码,无法找到答案。 另外,根据文档,不建议使用此方法。
我建议使用try / except / else子句。
希望文档中有一部分对您有所帮助: http : //docs.peewee-orm.com/zh-CN/latest/peewee/querying.html#get-or-create
如果缺少文档,请告诉我,我们将很乐意改进它们。
http://docs.peewee-orm.com/zh-CN/latest/peewee/api.html#Model.get_or_create
classmethod get_or_create(** kwargs)
尝试获取与给定过滤器匹配的行。 如果找不到匹配的行,请创建一个新行。
参数:
返回值:
它还警告您使用此方法可以达到竞争条件,甚至可以为您提供一个示例,而无需使用该方法:
try:
person = Person.get(
(Person.first_name == 'John') &
(Person.last_name == 'Lennon'))
except Person.DoesNotExist:
person = Person.create(
first_name='John',
last_name='Lennon',
birthday=datetime.date(1940, 10, 9))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.