mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[1.8.x] Fixed #25852 -- Made sure AlterModelManager forces a reload of its model state.
Thanks to Geoffrey Sechter and the Django NYC group for the report and Markus
for the review.
Backport of c4e372aaf4 from master
			
			
This commit is contained in:
		| @@ -563,6 +563,7 @@ class AlterModelManagers(Operation): | ||||
|     def state_forwards(self, app_label, state): | ||||
|         model_state = state.models[app_label, self.name_lower] | ||||
|         model_state.managers = list(self.managers) | ||||
|         state.reload_model(app_label, self.name_lower) | ||||
|  | ||||
|     def database_forwards(self, app_label, schema_editor, from_state, to_state): | ||||
|         pass | ||||
|   | ||||
| @@ -34,3 +34,6 @@ Bugfixes | ||||
| * Fixed missing ``varchar/text_pattern_ops`` index on ``CharField`` and | ||||
|   ``TextField`` respectively when using ``AlterField`` on PostgreSQL | ||||
|   (:ticket:`25412`). | ||||
|  | ||||
| * Fixed a state bug when using an ``AlterModelManagers`` operation | ||||
|   (:ticket:`25852`). | ||||
|   | ||||
| @@ -1378,6 +1378,11 @@ class OperationTests(OperationTestBase): | ||||
|         self.assertEqual(managers[2][0], "food_mgr_kwargs") | ||||
|         self.assertIsInstance(managers[2][1], FoodManager) | ||||
|         self.assertEqual(managers[2][1].args, ("x", "y", 3, 4)) | ||||
|         rendered_state = new_state.apps | ||||
|         model = rendered_state.get_model('test_almoma', 'pony') | ||||
|         self.assertIsInstance(model.food_qs, models.Manager) | ||||
|         self.assertIsInstance(model.food_mgr, FoodManager) | ||||
|         self.assertIsInstance(model.food_mgr_kwargs, FoodManager) | ||||
|  | ||||
|     def test_alter_model_managers_emptying(self): | ||||
|         """ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user