mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[2.1.x] Fixed #29000 -- Fixed RenameModel's renaming of a M2M column when run after RenameField.
Regression in45ded053b1. Backport offcc4e251dbfrom master
This commit is contained in:
		| @@ -802,6 +802,34 @@ class OperationTests(OperationTestBase): | ||||
|         self.assertEqual(PonyRider.objects.count(), 2) | ||||
|         self.assertEqual(pony.riders.count(), 2) | ||||
|  | ||||
|     def test_rename_m2m_model_after_rename_field(self): | ||||
|         """RenameModel renames a many-to-many column after a RenameField.""" | ||||
|         app_label = 'test_rename_multiple' | ||||
|         project_state = self.apply_operations(app_label, ProjectState(), operations=[ | ||||
|             migrations.CreateModel('Pony', fields=[ | ||||
|                 ('id', models.AutoField(primary_key=True)), | ||||
|                 ('name', models.CharField(max_length=20)), | ||||
|             ]), | ||||
|             migrations.CreateModel('Rider', fields=[ | ||||
|                 ('id', models.AutoField(primary_key=True)), | ||||
|                 ('pony', models.ForeignKey('test_rename_multiple.Pony', models.CASCADE)), | ||||
|             ]), | ||||
|             migrations.CreateModel('PonyRider', fields=[ | ||||
|                 ('id', models.AutoField(primary_key=True)), | ||||
|                 ('riders', models.ManyToManyField('Rider')), | ||||
|             ]), | ||||
|             migrations.RenameField(model_name='pony', old_name='name', new_name='fancy_name'), | ||||
|             migrations.RenameModel(old_name='Rider', new_name='Jockey'), | ||||
|         ], atomic=connection.features.supports_atomic_references_rename) | ||||
|         Pony = project_state.apps.get_model(app_label, 'Pony') | ||||
|         Jockey = project_state.apps.get_model(app_label, 'Jockey') | ||||
|         PonyRider = project_state.apps.get_model(app_label, 'PonyRider') | ||||
|         # No "no such column" error means the column was renamed correctly. | ||||
|         pony = Pony.objects.create(fancy_name='a good name') | ||||
|         jockey = Jockey.objects.create(pony=pony) | ||||
|         ponyrider = PonyRider.objects.create() | ||||
|         ponyrider.riders.add(jockey) | ||||
|  | ||||
|     def test_add_field(self): | ||||
|         """ | ||||
|         Tests the AddField operation. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user