Navigation Menu

Skip to content

Commit

Permalink
Merge pull request #931 from catalanojuan/fix-admin-log-dependency-on…
Browse files Browse the repository at this point in the history
…-user-id-field-20088

Fixed #20088 -- Changed get_admin_log not to depend on User id field
  • Loading branch information
ptone committed Mar 19, 2013
2 parents bc4111b + 054ce2a commit 7a3409f
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 3 deletions.
4 changes: 2 additions & 2 deletions django/contrib/admin/templatetags/log.py
Expand Up @@ -16,8 +16,8 @@ def render(self, context):
else: else:
user_id = self.user user_id = self.user
if not user_id.isdigit(): if not user_id.isdigit():
user_id = context[self.user].id user_id = context[self.user].pk
context[self.varname] = LogEntry.objects.filter(user__id__exact=user_id).select_related('content_type', 'user')[:int(self.limit)] context[self.varname] = LogEntry.objects.filter(user__pk__exact=user_id).select_related('content_type', 'user')[:int(self.limit)]
return '' return ''


@register.tag @register.tag
Expand Down
3 changes: 3 additions & 0 deletions tests/admin_changelist/models.py
Expand Up @@ -87,3 +87,6 @@ class OrderedObject(models.Model):
number = models.IntegerField(default=0, db_column='number_val') number = models.IntegerField(default=0, db_column='number_val')


objects = OrderedObjectManager() objects = OrderedObjectManager()

class CustomIdUser(models.Model):
uuid = models.AutoField(primary_key=True)
21 changes: 20 additions & 1 deletion tests/admin_changelist/tests.py
Expand Up @@ -20,7 +20,7 @@
SwallowAdmin, DynamicListFilterChildAdmin) SwallowAdmin, DynamicListFilterChildAdmin)
from .models import (Event, Child, Parent, Genre, Band, Musician, Group, from .models import (Event, Child, Parent, Genre, Band, Musician, Group,
Quartet, Membership, ChordsMusician, ChordsBand, Invitation, Swallow, Quartet, Membership, ChordsMusician, ChordsBand, Invitation, Swallow,
UnorderedObject, OrderedObject) UnorderedObject, OrderedObject, CustomIdUser)




class ChangeListTests(TestCase): class ChangeListTests(TestCase):
Expand Down Expand Up @@ -563,3 +563,22 @@ def test_dynamic_list_filter(self):
request = self._mocked_authenticated_request('/child/', user_parents) request = self._mocked_authenticated_request('/child/', user_parents)
response = m.changelist_view(request) response = m.changelist_view(request)
self.assertEqual(response.context_data['cl'].list_filter, ('parent', 'name', 'age')) self.assertEqual(response.context_data['cl'].list_filter, ('parent', 'name', 'age'))

class AdminLogNodeTestCase(TestCase):

def test_get_admin_log_templatetag_custom_user(self):
"""
Regression test for ticket #20088: admin log depends on User model
having id field as primary key.
The old implementation raised an AttributeError when trying to use
the id field.
"""
context = Context({'user': CustomIdUser()})
template_string = '{% load log %}{% get_admin_log 10 as admin_log for_user user %}'

template = Template(template_string)

# Rendering should be u'' since this templatetag just logs,
# it doesn't render any string.
self.assertEquals(template.render(context), u'')

0 comments on commit 7a3409f

Please sign in to comment.