我希望在Django中创建/更新对象。我目前的代码如下所示:
SlotFilling.objects.create(
originator=textobject.originator,
empty_slot=True,
)
将originator
设置为primary key
的位置。这适用于第一次看到originator
时创建新对象。但是,如果数据库中已存在originator
,我想知道如何更新对象。基本上,如果primary key
已存在update
功能,但如果它不具有create
功能。
我在这里寻找.create
的替代方案。我无法在models documentation中找到如何执行此操作。可能吗?我知道我可以使用try / except但是我想知道django是否有另一种选择。
答案 0 :(得分:2)
您可能想要的是update_or_create
@property (strong, nonatomic) UIViewController<DetailViewController> * detailViewController;
update_or_create方法尝试从数据库中获取对象 基于给定的kwargs。如果找到匹配项,则会更新字段 传入了默认字典。
答案 1 :(得分:1)
尝试:Django的内置函数update_or_create
。
SlotFilling.objects.update_or_create(originator=textobject.originator, defaults = {empty_slot: True})