1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #33449 -- Fixed makemigrations crash on models without Meta.order_with_respect_to but with _order field.

Regression in aa4acc164d.
This commit is contained in:
Fabian Büchler
2022-01-19 16:27:07 +01:00
committed by Mariusz Felisiak
parent f605e85af9
commit eeff1787b0
4 changed files with 45 additions and 5 deletions

View File

@@ -959,6 +959,44 @@ class StateTests(SimpleTestCase):
["id", "author"],
)
def test_modelstate_get_field_order_wrt(self):
new_apps = Apps()
class Author(models.Model):
name = models.TextField()
class Meta:
app_label = 'migrations'
apps = new_apps
class Book(models.Model):
author = models.ForeignKey(Author, models.CASCADE)
class Meta:
app_label = 'migrations'
apps = new_apps
order_with_respect_to = 'author'
model_state = ModelState.from_model(Book)
order_wrt_field = model_state.get_field('_order')
self.assertIsInstance(order_wrt_field, models.ForeignKey)
self.assertEqual(order_wrt_field.related_model, 'migrations.author')
def test_modelstate_get_field_no_order_wrt_order_field(self):
new_apps = Apps()
class HistoricalRecord(models.Model):
_order = models.PositiveSmallIntegerField()
class Meta:
app_label = 'migrations'
apps = new_apps
model_state = ModelState.from_model(HistoricalRecord)
order_field = model_state.get_field('_order')
self.assertIsNone(order_field.related_model)
self.assertIsInstance(order_field, models.PositiveSmallIntegerField)
def test_manager_refer_correct_model_version(self):
"""
#24147 - Managers refer to the correct version of a