我想在Django中创建/更新一个对象。我当前的代码如下所示:
SlotFilling.objects.create(
originator=textobject.originator,
empty_slot=True,
)
originator
被设置为我的primary key
的地方。这适用于首次看到originator
时创建新对象。但是,我想知道如何更新对象,如果数据库中已经存在originator
。基本上,如果primary key
已经存在update
功能,但如果不存在,则create
功能。
我正在寻找.create
的替代方案。我在模型文档中找不到如何执行此操作。可能吗?我知道我可以使用try/except 但我想知道django是否有替代方案。
你可能想要的是update_or_create
SlotFilling.objects.update_or_create(originator=textobject.originator, defaults = {empty_slot: True} )
update_or_create 方法尝试从数据库中获取对象 基于给定的夸格。如果找到匹配项,则会更新字段 在默认字典中传递。
尝试:Django的内置函数为此update_or_create
。
SlotFilling.objects.update_or_create(originator=textobject.originator, defaults = {empty_slot: True})