使用
模型类.objects.update_or_create(defaults=None, **kwargs)
说明: defaults 的值不同则创建,相同则更新
Demo:
User.objects.update_or_create(defaults={'id':1}, others={'field1':1,'field2':1})
当存在id=1时,则更新,不存在则创建
单表操作中update_or_create不能更新多于一个数据的信息(官方手写版👇)
defaults = {'first_name': 'Bob'}
try:
obj = Person.objects.get(first_name='John', last_name='Lennon')
for key, value in defaults.items():
setattr(obj, key, value)
obj.save()
except Person.DoesNotExist:
new_values = {'first_name': 'John', 'last_name': 'Lennon'}
new_values.update(defaults)
obj = Person(**new_values)
obj.save()