diff options
| author | Brian Rosner <brosner@gmail.com> | 2008-04-29 05:45:46 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2008-04-29 05:45:46 +0000 |
| commit | abb7a7ff0fa9440d833434a52328f56ab0c425e3 (patch) | |
| tree | 9a796eee544772de87d15f645c2573e7a18c78b2 /tests | |
| parent | 95dcdf473ed08f03040334d716c4e60c2a41e57c (diff) | |
newforms-admin: Fixed #6117 -- Implemented change history for the admin. This includes the ability to track changes on a newform. Model formsets now only return the changed/new objects saved. A big thanks to Karen Tracey and Alex Gaynor.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7507 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/modeltests/model_formsets/models.py | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/tests/modeltests/model_formsets/models.py b/tests/modeltests/model_formsets/models.py index 386cd04f03..89a4e0bf5c 100644 --- a/tests/modeltests/model_formsets/models.py +++ b/tests/modeltests/model_formsets/models.py @@ -50,9 +50,9 @@ Charles Baudelaire Gah! We forgot Paul Verlaine. Let's create a formset to edit the existing -authors with an extra form to add him. This time we'll use formset_for_queryset. -We *could* use formset_for_queryset to restrict the Author objects we edit, -but in that case we'll use it to display them in alphabetical order by name. +authors with an extra form to add him. We *could* pass in a queryset to +restrict the Author objects we edit, but in this case we'll use it to display +them in alphabetical order by name. >>> qs = Author.objects.order_by('name') >>> AuthorFormSet = _modelformset_factory(Author, extra=1, can_delete=False) @@ -79,8 +79,9 @@ but in that case we'll use it to display them in alphabetical order by name. >>> formset.is_valid() True +# Only changed or new objects are returned from formset.save() >>> formset.save() -[<Author: Arthur Rimbaud>, <Author: Charles Baudelaire>, <Author: Paul Verlaine>] +[<Author: Paul Verlaine>] >>> for author in Author.objects.order_by('name'): ... print author.name @@ -124,8 +125,9 @@ deltetion, make sure we don't save that form. >>> formset.is_valid() True +# No objects were changed or saved so nothing will come back. >>> formset.save() -[<Author: Arthur Rimbaud>, <Author: Charles Baudelaire>, <Author: Paul Verlaine>] +[] >>> for author in Author.objects.order_by('name'): ... print author.name @@ -133,6 +135,28 @@ Arthur Rimbaud Charles Baudelaire Paul Verlaine +Let's edit a record to ensure save only returns that one record. + +>>> data = { +... 'form-TOTAL_FORMS': '4', # the number of forms rendered +... 'form-INITIAL_FORMS': '3', # the number of forms with initial data +... 'form-0-id': '2', +... 'form-0-name': 'Walt Whitman', +... 'form-1-id': '1', +... 'form-1-name': 'Charles Baudelaire', +... 'form-2-id': '3', +... 'form-2-name': 'Paul Verlaine', +... 'form-3-name': '', +... 'form-3-DELETE': '', +... } + +>>> formset = AuthorFormSet(data=data, queryset=qs) +>>> formset.is_valid() +True + +# One record has changed. +>>> formset.save() +[<Author: Walt Whitman>] # Inline Formsets ############################################################ @@ -199,7 +223,7 @@ book. True >>> formset.save() -[<Book: Les Fleurs du Mal>, <Book: Le Spleen de Paris>] +[<Book: Le Spleen de Paris>] As you can see, 'Le Spleen de Paris' is now a book belonging to Charles Baudelaire. |
