环境
Package | Version |
---|---|
Django | 2.2.6 |
python | 3.6.0 |
django-debug-toolbar | 3.2 |
理解update_or_create
官网API
update_or_create(defaults=None, **kwargs)
A convenience method for updating an object with the given kwargs, creating a new one if necessary. The defaults is a dictionary of (field, value) pairs used to update the object. The values in defaults can be callables.
Returns a tuple of (object, created), where object is the created or updated object and created is a boolean specifying whether a new object was created.
The update_or_create method tries to fetch an object from database based on the given kwargs. If a match is found, it updates the fields passed in the defaults dictionary.
最佳实践
**kwargs参数查找对象,如果存在根据defaults字典更新对象,不存在则创建对象
obj, created = User.objects.update_or_create(
username='admin', id='1',
defaults={'username': 'Tom'},
)