Opened 12 years ago
Closed 12 years ago
#19219 closed Bug (invalid)
Admin Templatetag log.py - context[self.user] is not an object
Reported by: | scovetta | Owned by: | nobody |
---|---|---|---|
Component: | contrib.admin | Version: | 1.4 |
Severity: | Normal | Keywords: | |
Cc: | scovetta | Triage Stage: | Unreviewed |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description
I've recently upgraded to Django 1.4.2 and noticed that the Admin app is broken. Specifically, I am getting:
AttributeError: 'dict' object has no attribute 'id'
This is coming from:
# django/contrib/admin/templatetags/log.py 13 def render(self, context): 14 if self.user is None: 15 context[self.varname] = LogEntry.objects.all().select_related('content_type', 'user')[:self.limit] 16 else: 17 user_id = self.user 18 if not user_id.isdigit(): 19 user_id = context[self.user].id
I am using some third-party components (Nexus and Django-Extensions, notably), but this looks like a bug within Django.
The context[self.user] variable is a dictionary, containing, a dict'ed User:
{'username': u'scovetta', 'first_name': u'', 'last_name': u'', 'is_active': True, '_state': <django.db.models.base.ModelState object at 0x104681c50>, 'email': u'', 'is_superuser': True, 'is_staff': True, 'last_login': datetime.datetime(2012, 10, 31, 11, 26, 53, 488934), 'password': u'(removed)' , 'id': 2, 'date_joined': datetime.datetime(2012, 8, 3, 8, 8, 59, 69517) }
I've attached a patch for this.
Attachments (2)
Change History (4)
by , 12 years ago
comment:1 by , 12 years ago
Cc: | added |
---|
comment:2 by , 12 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
I assume the step to reproduce this is just going to the admin index, which uses the get_admin_log
template tag, and it works fine.
It seems extremely likely that the third party components have broken something. In stock Django 1.4.2, context[self.user]
is a django.contrib.auth.User
object, wrapped with SimpleLazyObject
.
I'm therefore closing this as invalid. It helps if you provide steps to reproduce a bug with stock Django.
New log.py file