Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[1.7.x] Fixed #21084 -- Used proxy model's content type for admin log…

… entries.

Backport of 7a7f6fc from master
  • Loading branch information...
commit 5e74d6cf0a4fa0caa51e77af77d55c2572f0917d 1 parent 3867925
@dialelo dialelo authored timgraham committed
Showing with 33 additions and 1 deletion.
  1. +33 −1 tests/admin_views/tests.py
View
34 tests/admin_views/tests.py
@@ -54,7 +54,7 @@
Report, MainPrepopulated, RelatedPrepopulated, UnorderedObject,
Simple, UndeletableObject, UnchangeableObject, Choice, ShortMessage,
Telegram, Pizza, Topping, FilteredManager, City, Restaurant, Worker,
- ParentWithDependentChildren, Character, FieldOverridePost)
+ ParentWithDependentChildren, Character, FieldOverridePost, Color2)
from .admin import site, site2, CityAdmin
@@ -669,6 +669,38 @@ def test_invalid_appindex_url(self):
with self.assertRaises(NoReverseMatch):
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)
class AdminCustomTemplateTests(AdminViewBasicTestCase):
Please sign in to comment.
Something went wrong with that request. Please try again.