mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixed #26720 -- Prevented invalid CreateModel optimizations of related fields.
This commit is contained in:
committed by
Tim Graham
parent
a97845a823
commit
ad82900ad9
@@ -270,6 +270,35 @@ class OptimizerTests(SimpleTestCase):
|
||||
app_label="testapp",
|
||||
)
|
||||
|
||||
# This could be optimized a bit more but it generates a valid set of
|
||||
# operations.
|
||||
self.assertOptimizesTo(
|
||||
[
|
||||
migrations.CreateModel('Book', [('name', models.CharField(max_length=255))]),
|
||||
migrations.CreateModel('Person', [('name', models.CharField(max_length=255))]),
|
||||
migrations.AddField('book', 'author', models.ForeignKey('test_app.Person', models.CASCADE)),
|
||||
migrations.CreateModel('Review', [('book', models.ForeignKey('test_app.Book', models.CASCADE))]),
|
||||
migrations.CreateModel('Reviewer', [('name', models.CharField(max_length=255))]),
|
||||
migrations.AddField('review', 'reviewer', models.ForeignKey('test_app.Reviewer', models.CASCADE)),
|
||||
migrations.RemoveField('book', 'author'),
|
||||
migrations.DeleteModel('Person'),
|
||||
],
|
||||
[
|
||||
migrations.CreateModel('Person', [('name', models.CharField(max_length=255))]),
|
||||
migrations.CreateModel('Book', [
|
||||
('name', models.CharField(max_length=255)),
|
||||
('author', models.ForeignKey('test_app.Person', models.CASCADE)),
|
||||
]),
|
||||
migrations.CreateModel('Reviewer', [('name', models.CharField(max_length=255))]),
|
||||
migrations.CreateModel('Review', [
|
||||
('book', models.ForeignKey('test_app.Book', models.CASCADE)),
|
||||
('reviewer', models.ForeignKey('test_app.Reviewer', models.CASCADE)),
|
||||
]),
|
||||
migrations.RemoveField('book', 'author'),
|
||||
migrations.DeleteModel('Person'),
|
||||
],
|
||||
)
|
||||
|
||||
def test_create_model_add_field(self):
|
||||
"""
|
||||
AddField should optimize into CreateModel.
|
||||
|
||||
Reference in New Issue
Block a user