[Django] #24668: Update docs example code for ModelAdmin.save_formset()

19 views
Skip to first unread message

Django

unread,
Apr 20, 2015, 10:01:43 AM4/20/15
to django-...@googlegroups.com
#24668: Update docs example code for ModelAdmin.save_formset()
--------------------------------------+--------------------
Reporter: CarstenF | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.8
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+--------------------
Currently, the example code for
[https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_formset
ModelAdmin.save_formset()] is:

{{{
#!python
class ArticleAdmin(admin.ModelAdmin):
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
for instance in instances:
instance.user = request.user
instance.save()
formset.save_m2m()
}}}

In the text, there is a link to
https://docs.djangoproject.com/en/1.8/topics/forms/modelforms/#saving-
objects-in-the-formset, but not to
https://docs.djangoproject.com/en/1.8/topics/forms/formsets/#can-delete,
where it is mentioned that with Django 1.7, `formset.save(commit=False)`
no longer deletes objects automatically.

(This is also mentioned in the
[https://docs.djangoproject.com/en/1.8/releases/1.7/#miscellaneous Django
1.7 Release Notes], but for me at least, this was not enough to make the
required mental leap...)

Thus, I suggest to augment the above example code as follows:
{{{
#!diff
diff --git a/docs/ref/contrib/admin/index.txt
b/docs/ref/contrib/admin/index.txt
index 416a70e..d6a5312 100644
--- a/docs/ref/contrib/admin/index.txt
+++ b/docs/ref/contrib/admin/index.txt
@@ -1259,6 +1259,8 @@ templates used by the :class:`ModelAdmin` views:
class ArticleAdmin(admin.ModelAdmin):
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
+ for obj in formset.deleted_objects:
+ obj.delete()
for instance in instances:
instance.user = request.user
instance.save()
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/24668>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Apr 20, 2015, 10:34:38 AM4/20/15
to django-...@googlegroups.com
#24668: Update docs example code for ModelAdmin.save_formset()
--------------------------------------+------------------------------------

Reporter: CarstenF | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.8
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by bmispelon):

* needs_docs: => 0
* has_patch: 0 => 1
* needs_better_patch: => 0
* needs_tests: => 0
* stage: Unreviewed => Accepted


Comment:

That makes sense.

Could you submit your proposed change as a pull request?

Thanks.

--
Ticket URL: <https://code.djangoproject.com/ticket/24668#comment:1>

Django

unread,
Apr 20, 2015, 10:50:02 AM4/20/15
to django-...@googlegroups.com
#24668: Update docs example code for ModelAdmin.save_formset()
--------------------------------------+------------------------------------
Reporter: CarstenF | Owner: nobody
Type: Cleanup/optimization | Status: closed
Component: Documentation | Version: 1.8
Severity: Normal | Resolution: fixed

Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by Tim Graham <timograham@…>):

* status: new => closed
* resolution: => fixed


Comment:

In [changeset:"e15c55e2bf5eb2f1073d18b4ee6fdce2369820f2" e15c55e2]:
{{{
#!CommitTicketReference repository=""
revision="e15c55e2bf5eb2f1073d18b4ee6fdce2369820f2"
Fixed #24668 -- Amended ModelAdmin.save_formset() example for #10284.

Thanks Carsten Fuchs.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/24668#comment:2>

Django

unread,
Apr 20, 2015, 10:50:15 AM4/20/15
to django-...@googlegroups.com
#24668: Update docs example code for ModelAdmin.save_formset()
--------------------------------------+------------------------------------
Reporter: CarstenF | Owner: nobody
Type: Cleanup/optimization | Status: closed
Component: Documentation | Version: 1.8

Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by Tim Graham <timograham@…>):

In [changeset:"32871fc215cb7be0f4fbddcd099cca35c05f2e42" 32871fc]:
{{{
#!CommitTicketReference repository=""
revision="32871fc215cb7be0f4fbddcd099cca35c05f2e42"
[1.7.x] Fixed #24668 -- Amended ModelAdmin.save_formset() example for
#10284.

Thanks Carsten Fuchs.

Backport of e15c55e2bf5eb2f1073d18b4ee6fdce2369820f2 from master
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/24668#comment:3>

Django

unread,
Apr 20, 2015, 10:50:21 AM4/20/15
to django-...@googlegroups.com
#24668: Update docs example code for ModelAdmin.save_formset()
--------------------------------------+------------------------------------
Reporter: CarstenF | Owner: nobody
Type: Cleanup/optimization | Status: closed
Component: Documentation | Version: 1.8

Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0

Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------

Comment (by Tim Graham <timograham@…>):

In [changeset:"e02616b1b0f89fd84cc0c6118f8c871fde8f3650" e02616b]:
{{{
#!CommitTicketReference repository=""
revision="e02616b1b0f89fd84cc0c6118f8c871fde8f3650"
[1.8.x] Fixed #24668 -- Amended ModelAdmin.save_formset() example for
#10284.

Thanks Carsten Fuchs.

Backport of e15c55e2bf5eb2f1073d18b4ee6fdce2369820f2 from master
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/24668#comment:4>

Reply all
Reply to author
Forward
0 new messages