mirror of
https://github.com/django/django.git
synced 2025-08-03 10:34:04 +00:00
Fixed #27204 -- Made clashing m2m intermediary table checks ignore unmanaged models.
This commit is contained in:
parent
652bcc6f5f
commit
e7abb5ba86
2 changed files with 32 additions and 2 deletions
|
@ -830,6 +830,36 @@ class OtherModelTests(SimpleTestCase):
|
|||
)
|
||||
])
|
||||
|
||||
def test_m2m_unmanaged_shadow_models_not_checked(self):
|
||||
class A1(models.Model):
|
||||
pass
|
||||
|
||||
class C1(models.Model):
|
||||
mm_a = models.ManyToManyField(A1, db_table='d1')
|
||||
|
||||
# Unmanaged models that shadow the above models. Reused table names
|
||||
# shouldn't be flagged by any checks.
|
||||
class A2(models.Model):
|
||||
class Meta:
|
||||
managed = False
|
||||
|
||||
class C2(models.Model):
|
||||
mm_a = models.ManyToManyField(A2, through='Intermediate')
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
|
||||
class Intermediate(models.Model):
|
||||
a2 = models.ForeignKey(A2, models.CASCADE, db_column='a1_id')
|
||||
c2 = models.ForeignKey(C2, models.CASCADE, db_column='c1_id')
|
||||
|
||||
class Meta:
|
||||
db_table = 'd1'
|
||||
managed = False
|
||||
|
||||
self.assertEqual(C1.check(), [])
|
||||
self.assertEqual(C2.check(), [])
|
||||
|
||||
@isolate_apps('django.contrib.auth', kwarg_name='apps')
|
||||
def test_lazy_reference_checks(self, apps):
|
||||
class DummyModel(models.Model):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue