mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +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:
committed by
Mariusz Felisiak
parent
f605e85af9
commit
eeff1787b0
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user