summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevan Swanberg <kevswanberg@gmail.com>2016-07-21 13:08:57 -0400
committerTim Graham <timograham@gmail.com>2016-07-21 14:29:03 -0400
commit17a0a6667c3f77908f9427f6489e298c828133e2 (patch)
tree467faacbe25f9f6f75ee8d1bb83765134384e449
parentd7a097265b1842843a73ce0da36ef98bacac8a3e (diff)
Refs #26796 -- Fixed ManyToManyField's limit_choices_to warning without a through model.
-rw-r--r--django/db/models/fields/related.py3
-rw-r--r--tests/invalid_models_tests/test_relative_fields.py9
2 files changed, 11 insertions, 1 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index e2313e08fd..a41e93b73f 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -1228,7 +1228,8 @@ class ManyToManyField(RelatedField):
id='fields.W341',
)
)
- if self.remote_field.limit_choices_to and self.remote_field.through:
+ if (self.remote_field.limit_choices_to and self.remote_field.through and
+ not self.remote_field.through._meta.auto_created):
warnings.append(
checks.Warning(
'limit_choices_to has no effect on ManyToManyField '
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py
index f42d6a5365..01941fc58c 100644
--- a/tests/invalid_models_tests/test_relative_fields.py
+++ b/tests/invalid_models_tests/test_relative_fields.py
@@ -176,6 +176,15 @@ class RelativeFieldTests(SimpleTestCase):
field = Model._meta.get_field('m2m')
self.assertEqual(field.check(from_model=Model), [])
+ def test_many_to_many_with_limit_choices_auto_created_no_warning(self):
+ class Model(models.Model):
+ name = models.CharField(max_length=20)
+
+ class ModelM2M(models.Model):
+ m2m = models.ManyToManyField(Model, limit_choices_to={'name': 'test_name'})
+
+ self.assertEqual(ModelM2M.check(), [])
+
def test_many_to_many_with_useless_options(self):
class Model(models.Model):
name = models.CharField(max_length=20)