#31957: ModelAdmin method save_form not documented but being called multiple
times
-------------------------------------+-------------------------------------
Reporter: scratchmex | Owner: nobody
Type: | Status: new
Cleanup/optimization |
Component: contrib.admin | Version: 3.1
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by scratchmex:
Old description:
> I take the opportunity to say this is my first ticket (issue) posted for
> Django.
>
> As 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`).
>
> 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.
>
> I'm all ears to your comments.
New description:
I take the opportunity to say this is my first ticket (issue) posted for
Django.
As 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`).
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 `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.
I'm all ears to your comments.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/31957#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/068.209b8055b5285113df9fb7d2d1d8bd59%40djangoproject.com.