Changes between Version 1 and Version 2 of Ticket #31957


Ignore:
Timestamp:
Aug 28, 2020, 12:16:55 AM (4 years ago)
Author:
Ivan Gonzalez
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #31957 – Description

    v1 v2  
    33As you can search in the docs (https://docs.djangoproject.com/en/dev/ref/contrib/admin/#modeladmin-options). There is no documentation about the `ModelAdmin.save_form` method but is being called multiple times (lines 1763 and 1575 in `django.contrib.admin.options`).
    44
    5 On the other hand, `ModelAdmin.save_form` calls the `form.save` method and `ModelAdmin.save_model` calls the `obj.save` method, but `ModelAdmin.save_form` and `ModelAdmin.save_model` are called in the same flow (lines 1763,1764 and 1575,1580 in `django.contrib.admin.options`), i.e., both can be called in serial leading to multiple saves of the same object. This is specially important when using `signals` because two calls to save may trigger duplicate signals. Maybe a better documentation of that, a suggestion of which to use, and if it's possible an optimization of those calls would be great.
     5On the other hand, `ModelAdmin.save_form` calls the `form.save` method and `ModelAdmin.save_model` calls the `obj.save` method, but `ModelAdmin.save_form` and `ModelAdmin.save_model` are called in the same flow (lines 1763,1764 and 1575,1580 in `django.contrib.admin.options`), i.e., both can be called in serial leading to multiple saves of the same object. This is specially important when using `signals` because two calls to `obj.save` may trigger duplicate signals when listening to `post_save`, for example. Maybe a better documentation of that, a suggestion of which to use, and if it's possible an optimization of those calls would be great.
    66
    77I'm all ears to your comments.
Back to Top