update_or_create的用法
时间: 2023-04-03 18:00:55 浏览: 91
update_or_create 是 Django 模型中的一个方法,用于更新或创建一个对象。如果指定的对象已经存在,则更新该对象的字段值;如果不存在,则创建一个新的对象。该方法的语法如下:
Model.objects.update_or_create(defaults=None, **kwargs)
其中,defaults 是一个字典,用于指定要更新的字段和值;kwargs 是一个字典,用于指定要查找或创建的对象的属性和值。如果找到了符合条件的对象,则更新该对象的字段值;如果没有找到符合条件的对象,则创建一个新的对象,并使用 defaults 中指定的字段值。
例如,假设有一个名为 Book 的模型,其中包含 title、author 和 price 三个字段,我们可以使用 update_or_create 方法来更新或创建一个 Book 对象:
book, created = Book.objects.update_or_create(
title='Django for Beginners',
defaults={'author': 'William S. Vincent', 'price': 29.99}
)
如果存在 title 为 'Django for Beginners' 的 Book 对象,则更新该对象的 author 和 price 字段值;如果不存在,则创建一个新的 Book 对象,并将 title、author 和 price 字段值分别设置为 'Django for Beginners'、'William S. Vincent' 和 29.99。方法的返回值是一个元组,其中第一个元素是更新或创建的 Book 对象,第二个元素是一个布尔值,表示该对象是更新还是创建的。