summaryrefslogtreecommitdiff
path: root/tests/admin_views/models.py
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2014-11-16 16:42:09 +0100
committerTim Graham <timograham@gmail.com>2014-11-25 13:48:50 -0500
commit2fd16232b106cf99ed42eccf57da1eed1f815d41 (patch)
treefbc824817ea1e5ad75e7b4c330a3785e73231e70 /tests/admin_views/models.py
parentc3a40af6ec50e537b82ce6ca3acf5d665db76f29 (diff)
[1.6.x] Fixed #23754 -- Always allowed reference to the primary key in the admin
This change allows dynamically created inlines "Add related" button to work correcly as long as their associated foreign key is pointing to the primary key of the related model. Thanks to amorce for the report, Julien Phalip for the initial patch, and Collin Anderson for the review. Backport of f9c4e14aeca7df79991bca8ac2d743953cbd095c from master
Diffstat (limited to 'tests/admin_views/models.py')
-rw-r--r--tests/admin_views/models.py24
1 files changed, 17 insertions, 7 deletions
diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py
index 7b8af6f8d2..dd26e13fb1 100644
--- a/tests/admin_views/models.py
+++ b/tests/admin_views/models.py
@@ -690,11 +690,13 @@ class Choice(models.Model):
# Models for #23329
class ReferencedByParent(models.Model):
- pass
+ name = models.CharField(max_length=20, unique=True)
class ParentWithFK(models.Model):
- fk = models.ForeignKey(ReferencedByParent)
+ fk = models.ForeignKey(
+ ReferencedByParent, to_field='name', related_name='hidden+',
+ )
class ChildOfReferer(ParentWithFK):
@@ -704,13 +706,16 @@ class ChildOfReferer(ParentWithFK):
class M2MReference(models.Model):
ref = models.ManyToManyField('self')
+
# Models for #23431
class ReferencedByInline(models.Model):
- pass
+ name = models.CharField(max_length=20, unique=True)
class InlineReference(models.Model):
- fk = models.ForeignKey(ReferencedByInline, related_name='hidden+')
+ fk = models.ForeignKey(
+ ReferencedByInline, to_field='name', related_name='hidden+',
+ )
class InlineReferer(models.Model):
@@ -719,9 +724,14 @@ class InlineReferer(models.Model):
# Models for #23604
class Recipe(models.Model):
- name = models.CharField(max_length=20)
+ pass
class Ingredient(models.Model):
- name = models.CharField(max_length=20)
- recipes = models.ManyToManyField('Recipe', related_name='ingredients')
+ recipes = models.ManyToManyField(Recipe)
+
+
+# Model for #23839
+class NotReferenced(models.Model):
+ # Don't point any FK at this model.
+ pass