Refs #26796 -- Fixed ManyToManyField's limit_choices_to warning without a through model.
This commit is contained in:
parent
d7a097265b
commit
17a0a6667c
|
@ -1228,7 +1228,8 @@ class ManyToManyField(RelatedField):
|
||||||
id='fields.W341',
|
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(
|
warnings.append(
|
||||||
checks.Warning(
|
checks.Warning(
|
||||||
'limit_choices_to has no effect on ManyToManyField '
|
'limit_choices_to has no effect on ManyToManyField '
|
||||||
|
|
|
@ -176,6 +176,15 @@ class RelativeFieldTests(SimpleTestCase):
|
||||||
field = Model._meta.get_field('m2m')
|
field = Model._meta.get_field('m2m')
|
||||||
self.assertEqual(field.check(from_model=Model), [])
|
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):
|
def test_many_to_many_with_useless_options(self):
|
||||||
class Model(models.Model):
|
class Model(models.Model):
|
||||||
name = models.CharField(max_length=20)
|
name = models.CharField(max_length=20)
|
||||||
|
|
Loading…
Reference in New Issue