summaryrefslogtreecommitdiff
path: root/tests/modeltests
diff options
context:
space:
mode:
authorKaren Tracey <kmtracey@gmail.com>2009-02-03 14:02:09 +0000
committerKaren Tracey <kmtracey@gmail.com>2009-02-03 14:02:09 +0000
commit81ae2afdec8a81b94bacf02a1242277e0b4caceb (patch)
treeb09a8cc488cd8a730258cc376fe7ea533c17475d /tests/modeltests
parentecadf675690c2cc9375e9af70ebd1528841eae76 (diff)
downloaddjango-81ae2afdec8a81b94bacf02a1242277e0b4caceb.tar.gz
Fixed 10075: Allowed saving of inline-edited models that use multi-table inheritance.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9809 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/modeltests')
-rw-r--r--tests/modeltests/model_formsets/models.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/modeltests/model_formsets/models.py b/tests/modeltests/model_formsets/models.py
index f11d4538ef..0503ea2a84 100644
--- a/tests/modeltests/model_formsets/models.py
+++ b/tests/modeltests/model_formsets/models.py
@@ -36,6 +36,12 @@ class BookWithCustomPK(models.Model):
def __unicode__(self):
return u'%s: %s' % (self.my_pk, self.title)
+class AlternateBook(Book):
+ notes = models.CharField(max_length=100)
+
+ def __unicode__(self):
+ return u'%s - %s' % (self.title, self.notes)
+
class AuthorMeeting(models.Model):
name = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
@@ -520,6 +526,33 @@ True
... print book.title
Les Fleurs du Mal
+Test inline formsets where the inline-edited object uses multi-table inheritance, thus
+has a non AutoField yet auto-created primary key.
+
+>>> AuthorBooksFormSet3 = inlineformset_factory(Author, AlternateBook, can_delete=False, extra=1)
+
+>>> formset = AuthorBooksFormSet3(instance=author)
+>>> for form in formset.forms:
+... print form.as_p()
+<p><label for="id_alternatebook_set-0-title">Title:</label> <input id="id_alternatebook_set-0-title" type="text" name="alternatebook_set-0-title" maxlength="100" /></p>
+ <p><label for="id_alternatebook_set-0-notes">Notes:</label> <input id="id_alternatebook_set-0-notes" type="text" name="alternatebook_set-0-notes" maxlength="100" /><input type="hidden" name="alternatebook_set-0-author" value="1" id="id_alternatebook_set-0-author" /><input type="hidden" name="alternatebook_set-0-book_ptr" id="id_alternatebook_set-0-book_ptr" /></p>
+
+
+>>> data = {
+... 'alternatebook_set-TOTAL_FORMS': '1', # the number of forms rendered
+... 'alternatebook_set-INITIAL_FORMS': '0', # the number of forms with initial data
+... 'alternatebook_set-0-title': 'Flowers of Evil',
+... 'alternatebook_set-0-notes': 'English translation of Les Fleurs du Mal'
+... }
+
+>>> formset = AuthorBooksFormSet3(data, instance=author)
+>>> formset.is_valid()
+True
+
+>>> formset.save()
+[<AlternateBook: Flowers of Evil - English translation of Les Fleurs du Mal>]
+
+
# Test a custom primary key ###################################################
We need to ensure that it is displayed