summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorKaren Tracey <kmtracey@gmail.com>2010-03-10 15:44:43 +0000
committerKaren Tracey <kmtracey@gmail.com>2010-03-10 15:44:43 +0000
commit079457ff01d6a03b7798754e00c1050bcfca5b13 (patch)
tree21aca33911f7b1d48b3846fdfc88bee0d878f697 /django
parentd312fa2a619633c45afd3cfdb90f325e2ecd9be9 (diff)
Fixed #11702: Catch to_field specifying a non-unique target in validation. Thanks marcosmoyano.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12756 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/core/management/validation.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/django/core/management/validation.py b/django/core/management/validation.py
index ddf454ffad..554c59e856 100644
--- a/django/core/management/validation.py
+++ b/django/core/management/validation.py
@@ -80,6 +80,10 @@ def get_validation_errors(outfile, app=None):
if isinstance(f.rel.to, (str, unicode)):
continue
+ # Make sure the related field specified by a ForeignKey is unique
+ if not f.rel.to._meta.get_field(f.rel.field_name).unique:
+ e.add(opts, "Field '%s' under model '%s' must have a unique=True constraint." % (f.rel.field_name, f.rel.to.__name__))
+
rel_opts = f.rel.to._meta
rel_name = RelatedObject(f.rel.to, cls, f).get_accessor_name()
rel_query_name = f.related_query_name()