django create_or_update()

使用

模型类.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()
posted @ 2021-01-29 17:08  萌新_python  阅读(1310)  评论(0编辑  收藏  举报