Browse files

Improved model validator to throw error if a model has two ManyToMany…

… relationships to the same model and doesn't set 'singular'. Refs #452.

git-svn-id: bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent e0f0532 commit 9e2eccc1ab06e831f586e002915c00d90206b59b @adrianholovaty adrianholovaty committed Dec 1, 2005
Showing with 7 additions and 0 deletions.
  1. +7 −0 django/core/
@@ -646,6 +646,13 @@ def get_validation_errors(outfile):
if not type(c) in (tuple, list) or len(c) != 2:
e.add(opts, '"%s" field: "choices" should be a sequence of two-tuples.' %
+ # Check for multiple ManyToManyFields to the same object, and
+ # verify "singular" is set in that case.
+ for i, f in enumerate(opts.many_to_many):
+ for previous_f in opts.many_to_many[:i]:
+ if == and f.rel.singular == previous_f.rel.singular:
+ e.add(opts, 'The "%s" field requires a "singular" parameter, because the %s model has more than one ManyToManyField to the same model (%s).' % (, opts.object_name,
# Check admin attribute.
if opts.admin is not None:
if not isinstance(opts.admin, meta.Admin):

0 comments on commit 9e2eccc

Please sign in to comment.