Django 模型方法 - create_or_update

Posted

技术标签:

【中文标题】Django 模型方法 - create_or_update【英文标题】:Django model method - create_or_update 【发布时间】:2013-04-26 03:32:12 【问题描述】:

类似于get_or_create,我希望能够在Django 中update_or_create

到目前为止,我使用的方法类似于@Daniel Roseman does it here。不过,我想更简洁地把它作为一种模型方法。

This snippet 已经很老了,我想知道在更新版本的 Django 中是否有更好的方法来做到这一点。

【问题讨论】:

这能回答你的问题吗? Create Django model or update if exists 【参考方案1】:

参见QuerySet.update_or_create(Django 1.7dev 中的新功能)

【讨论】:

【参考方案2】:

update_or_create,例如::

obj, created = Person.objects.update_or_create(
    first_name='John', last_name='Lennon',
    defaults='first_name': 'Bob',
)
# If person exists with first_name='John' & last_name='Lennon' then update first_name='Bob'
# Else create new person with first_name='Bob' & last_name='Lennon'

【讨论】:

感谢您解释默认值的作用。这在文档中非常令人困惑。 :D @ShahriarRahmanZahin 谢谢你的客气话。也许我会在 django 中提交一个拉取请求\ 那太棒了! @suhailvs

以上是关于Django 模型方法 - create_or_update的主要内容,如果未能解决你的问题,请参考以下文章

Django迁移RunPython无法调用模型方法

django中对model模型添加方法

django中对model模型添加方法

如何模拟 Django 模型对象(及其方法)?

Django,来自模型方法的查询过滤

从 django 模型的保存方法中引发 ValidationError?