7.7. ORM Update
.bulk_update()
.save()
.select_for_update()
.update()
.update_or_create()
>>> mark = Customer.objects.get(firstname='Mark', lastname='Watney')
>>> mark.age = 42
>>> mark.save()
>>> mark = Customer.objects.get(firstname='Mark', lastname='Watney').update(age=42)
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'Customer' object has no attribute 'update'
>>> Customer.objects.filter(firstname='Mark', lastname='Watney').update(age=42)
1
>>> Customer.objects.filter(firstname='Mark').update(age=42)
2
>>> Customer.objects.update_or_create(firstname='Mark', lastname='Watney')
(<Customer: Mark Watney>, False)
>>> Customer.objects.update_or_create(firstname='Mark', lastname='WatneyXXX')
(<Customer: Mark WatneyXXX>, True)
>>> c, status = Customer.objects.update_or_create(firstname='Mark', lastname='Watney')
>>>
>>> if status is True:
... print('Created')
... else:
... print('Updated')
Updated
c
<Customer: Mark Watney>
>>> c, status = Customer.objects.update_or_create(firstname='Mark', lastname='Watney', defaults={'age': 42})
>>> c
<Customer: Mark Watney>
status
False