我找不到答案,使用起来会更快:
if not Model.objects.filter(*some_data*).exists():
Model.objects.create(*some_data*)
然后:
Model.objects.get_or_create(*some_data*)
有人知道吗?
答案 0 :(得分:1)
使用给定的kwargs查找对象的便捷方法 (如果您的模型具有所有字段的默认值,则可能为空),创建一个 如果有必要的话。
所以至少你违反了DRY校长。除此之外,您正在检查模型中的所有字段,而不仅仅是主键或唯一字段。您将尝试查找所有字段匹配的对象。所以很有可能你会得到错误的结果,你的创建语句也会失败。这就是为什么get_or_create具有defaults
参数