Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[1.6.x] Fixed #21472 -- Fixed inline formsets display when parent pk …

…is 0

Thanks agale031176@gmail.com for the report.
Backport of fafb6cf from master.
  • Loading branch information...
commit d8fdee7db877e3a52a761bfcbeb3536ea219ec30 1 parent 6f48ae0
@claudep claudep authored
View
2  django/forms/models.py
@@ -831,7 +831,7 @@ def __init__(self, data=None, files=None, instance=None,
self.save_as_new = save_as_new
if queryset is None:
queryset = self.model._default_manager
- if self.instance.pk:
+ if self.instance.pk is not None:
qs = queryset.filter(**{self.fk.name: self.instance})
else:
qs = queryset.none()
View
2  docs/releases/1.6.1.txt
@@ -26,3 +26,5 @@ Bug fixes
for the non-breaking space was returned verbatim (#21415).
* Fixed :djadmin:`loaddata` error when fixture file name contained any dots
non related to file extensions (#21457).
+* Fixed display of inline instances in formsets when parent has 0 for primary
+ key (#21472).
View
11 tests/inline_formsets/tests.py
@@ -1,7 +1,7 @@
from __future__ import absolute_import, unicode_literals
from django.forms.models import inlineformset_factory
-from django.test import TestCase
+from django.test import TestCase, skipUnlessDBFeature
from django.utils import six
from .models import Poet, Poem, School, Parent, Child
@@ -157,3 +157,12 @@ def test_any_iterable_allowed_as_argument_to_exclude(self):
inlineformset_factory(
Parent, Child, exclude=('school',), fk_name='mother'
)
+
+ @skipUnlessDBFeature('allows_primary_key_0')
+ def test_zero_primary_key(self):
+ # Regression test for #21472
+ poet = Poet.objects.create(id=0, name='test')
+ poem = poet.poem_set.create(name='test poem')
+ PoemFormSet = inlineformset_factory(Poet, Poem, fields="__all__", extra=0)
+ formset = PoemFormSet(None, instance=poet)
+ self.assertEqual(len(formset.forms), 1)
Please sign in to comment.
Something went wrong with that request. Please try again.