acreate method doesn't call asave
acreate doesn't call asave method.
When you use async Django methods and you want to add custom logic in asave method, when you create your object with acreate, it doesn't call your asave method.
class SimpleModel(models.Model):
field = models.IntegerField()
async def asave(self, *args, **kwargs):
self.field += 1
await super().asave(*args, **kwargs)
obj = await SimpleModel.objects.acreate(field=4)
obj.field # returns 4, should be 5
When you run create, it calls save().
Change History
(10)
| Easy pickings: |
unset
|
| Keywords: |
async added
|
| Triage Stage: |
Unreviewed → Accepted
|
| Patch needs improvement: |
set
|
| Owner: |
changed from @… to Mateusz Szymanowski
|
| Owner: |
changed from Mateusz Szymanowski to Jericho Serrano
|
| Needs tests: |
set
|
| Patch needs improvement: |
unset
|
| Needs tests: |
unset
|
| Owner: |
changed from Jericho Serrano to Mateusz Szymanowski
|
| Patch needs improvement: |
set
|
Thank you Mateusz for your report! Great catch.