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

7.7.1. Update

7.7.2. Update or Create

7.7.3. Bulk Update

7.7.4. Select for Update