mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	[1.7.x] Fixed #21084 -- Used proxy model's content type for admin log entries.
Backport of 7a7f6fccae from master
			
			
This commit is contained in:
		
				
					committed by
					
						 Tim Graham
						Tim Graham
					
				
			
			
				
	
			
			
			
						parent
						
							38679254bf
						
					
				
				
					commit
					5e74d6cf0a
				
			| @@ -54,7 +54,7 @@ from .models import (Article, BarAccount, CustomArticle, EmptyModel, FooAccount, | |||||||
|     Report, MainPrepopulated, RelatedPrepopulated, UnorderedObject, |     Report, MainPrepopulated, RelatedPrepopulated, UnorderedObject, | ||||||
|     Simple, UndeletableObject, UnchangeableObject, Choice, ShortMessage, |     Simple, UndeletableObject, UnchangeableObject, Choice, ShortMessage, | ||||||
|     Telegram, Pizza, Topping, FilteredManager, City, Restaurant, Worker, |     Telegram, Pizza, Topping, FilteredManager, City, Restaurant, Worker, | ||||||
|     ParentWithDependentChildren, Character, FieldOverridePost) |     ParentWithDependentChildren, Character, FieldOverridePost, Color2) | ||||||
| from .admin import site, site2, CityAdmin | from .admin import site, site2, CityAdmin | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -669,6 +669,38 @@ class AdminViewBasicTest(AdminViewBasicTestCase): | |||||||
|         with self.assertRaises(NoReverseMatch): |         with self.assertRaises(NoReverseMatch): | ||||||
|             reverse('admin:app_list', args=('admin_views2',)) |             reverse('admin:app_list', args=('admin_views2',)) | ||||||
|  |  | ||||||
|  |     def test_proxy_model_content_type_is_used_for_log_entries(self): | ||||||
|  |         """ | ||||||
|  |         Log entries for proxy models should have the proxy model's content | ||||||
|  |         type. | ||||||
|  |  | ||||||
|  |         Regression test for #21084. | ||||||
|  |         """ | ||||||
|  |         color2_content_type = ContentType.objects.get_for_model(Color2, for_concrete_model=False) | ||||||
|  |  | ||||||
|  |         # add | ||||||
|  |         color2_add_url = reverse('admin:admin_views_color2_add') | ||||||
|  |         self.client.post(color2_add_url, {'value': 'orange'}) | ||||||
|  |  | ||||||
|  |         color2_addition_log = LogEntry.objects.all()[0] | ||||||
|  |         self.assertEqual(color2_content_type, color2_addition_log.content_type) | ||||||
|  |  | ||||||
|  |         # change | ||||||
|  |         color_id = color2_addition_log.object_id | ||||||
|  |         color2_change_url = reverse('admin:admin_views_color2_change', args=(color_id)) | ||||||
|  |  | ||||||
|  |         self.client.post(color2_change_url, {'value': 'blue'}) | ||||||
|  |  | ||||||
|  |         color2_change_log = LogEntry.objects.all()[0] | ||||||
|  |         self.assertEqual(color2_content_type, color2_change_log.content_type) | ||||||
|  |  | ||||||
|  |         # delete | ||||||
|  |         color2_delete_url = reverse('admin:admin_views_color2_delete', args=(color_id)) | ||||||
|  |         self.client.post(color2_delete_url) | ||||||
|  |  | ||||||
|  |         color2_delete_log = LogEntry.objects.all()[0] | ||||||
|  |         self.assertEqual(color2_content_type, color2_delete_log.content_type) | ||||||
|  |  | ||||||
|  |  | ||||||
| @override_settings(TEMPLATE_DIRS=ADMIN_VIEW_TEMPLATES_DIR) | @override_settings(TEMPLATE_DIRS=ADMIN_VIEW_TEMPLATES_DIR) | ||||||
| class AdminCustomTemplateTests(AdminViewBasicTestCase): | class AdminCustomTemplateTests(AdminViewBasicTestCase): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user