diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2010-02-26 11:12:14 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2010-02-26 11:12:14 +0000 |
| commit | a52f1dd95c87bca8c5edc69a487d1a5069ddd7cd (patch) | |
| tree | d2e2d0ee5567be29386ab38e4997d0c2d0e3a973 /django | |
| parent | 6ca3154bcd14f377ba38f1199f6053ec94e59651 (diff) | |
[1.1.X] Fixed #11226 -- Corrected an validation edge case with m2m relations between two models with the same class name. Thanks to pkoch for the report, and to Ramiro Morales for the patch.
Backport of r12489 from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12596 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/core/management/validation.py | 2 | ||||
| -rw-r--r-- | django/db/models/fields/related.py | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/django/core/management/validation.py b/django/core/management/validation.py index bc2856c127..d999c8b9b1 100644 --- a/django/core/management/validation.py +++ b/django/core/management/validation.py @@ -160,7 +160,7 @@ def get_validation_errors(outfile, app=None): elif field.rel.to == cls: seen_this_fk = True if not seen_related_fk or not seen_this_fk: - e.add(opts, "'%s' has a manually-defined m2m relation through model %s, which does not have foreign keys to %s and %s" % (f.name, f.rel.through, f.rel.to._meta.object_name, cls._meta.object_name)) + e.add(opts, "'%s' is a manually-defined m2m relation through model %s, which does not have foreign keys to %s and %s" % (f.name, f.rel.through, f.rel.to._meta.object_name, cls._meta.object_name)) else: e.add(opts, "'%s' specifies an m2m relation through model %s, which has not been installed" % (f.name, f.rel.through)) diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 122ddd4ce5..008f5b6ac0 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -843,7 +843,7 @@ class ManyToManyField(RelatedField, Field): self._m2m_column_name_cache = f.column break # If this is an m2m relation to self, avoid the inevitable name clash - elif related.model == related.parent_model: + elif related.model._meta.object_name.lower() == related.parent_model._meta.object_name.lower(): self._m2m_column_name_cache = 'from_' + related.model._meta.object_name.lower() + '_id' else: self._m2m_column_name_cache = related.model._meta.object_name.lower() + '_id' |
