Refs #31310 -- Added test for check for using intermediate model with ambiguous foreign key from model.
This commit is contained in:
parent
a4881f5e5d
commit
308fab9241
|
@ -128,6 +128,36 @@ class RelativeFieldTests(SimpleTestCase):
|
||||||
),
|
),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
def test_ambiguous_relationship_model_from(self):
|
||||||
|
class Person(models.Model):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class Group(models.Model):
|
||||||
|
field = models.ManyToManyField('Person', through='AmbiguousRelationship')
|
||||||
|
|
||||||
|
class AmbiguousRelationship(models.Model):
|
||||||
|
person = models.ForeignKey(Person, models.CASCADE)
|
||||||
|
first_group = models.ForeignKey(Group, models.CASCADE, related_name='first')
|
||||||
|
second_group = models.ForeignKey(Group, models.CASCADE, related_name='second')
|
||||||
|
|
||||||
|
field = Group._meta.get_field('field')
|
||||||
|
self.assertEqual(field.check(from_model=Group), [
|
||||||
|
Error(
|
||||||
|
"The model is used as an intermediate model by "
|
||||||
|
"'invalid_models_tests.Group.field', but it has more than one "
|
||||||
|
"foreign key from 'Group', which is ambiguous. You must "
|
||||||
|
"specify which foreign key Django should use via the "
|
||||||
|
"through_fields keyword argument.",
|
||||||
|
hint=(
|
||||||
|
'If you want to create a recursive relationship, use '
|
||||||
|
'ForeignKey("self", symmetrical=False, '
|
||||||
|
'through="AmbiguousRelationship").'
|
||||||
|
),
|
||||||
|
obj=field,
|
||||||
|
id='fields.E334',
|
||||||
|
),
|
||||||
|
])
|
||||||
|
|
||||||
def test_ambiguous_relationship_model(self):
|
def test_ambiguous_relationship_model(self):
|
||||||
|
|
||||||
class Person(models.Model):
|
class Person(models.Model):
|
||||||
|
|
Loading…
Reference in New Issue