#32681: Variable lookup errors are logged rendering the admin index page if
subtitle is not defined.
-------------------------------------+-------------------------------------
Reporter: Zain Patel | Owner: Zain
| Patel
Type: Bug | Status: closed
Component: contrib.admin | Version: 3.2
Severity: Release blocker | Resolution: fixed
Keywords: admin, template | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Sourav Kumar):
I'm still facing this same issue even after updating to the Django 3.2.9.
Replying to [ticket:32681 Zain Patel]:
> This looks like a bug introduced in Django 3.2 with the introduction of
a new variable introduced in the base templates
(`django/contrib/admin/templates/base_site.html`) named `subtitle.` This
variable is passed in most places within the admin site, e.g in
django/contrib/admin/options.py
>
> Loading the admin index page with log-level debug shows the following
exception/stack trace (that admittedly does not affect anything functional
- simply clutters the logs):
>
>
> {{{
> Exception while resolving variable 'subtitle' in template
'admin/index.html'.
> Traceback (most recent call last):
> File "...lib/python3.7/site-packages/django/template/base.py", line
829, in _resolve_lookup
> current = current[bit]
> File "...lib/python3.7/site-packages/django/template/context.py", line
83, in __getitem__
> raise KeyError(key)
> KeyError: 'subtitle'
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File "...lib/python3.7/site-packages/django/template/base.py", line
835, in _resolve_lookup
> if isinstance(current, BaseContext) and getattr(type(current), bit):
> AttributeError: type object 'RequestContext' has no attribute 'subtitle'
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File "...lib/python3.7/site-packages/django/template/base.py", line
843, in _resolve_lookup
> current = current[int(bit)]
> ValueError: invalid literal for int() with base 10: 'subtitle'
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File "...lib/python3.7/site-packages/django/template/base.py", line
850, in _resolve_lookup
> (bit, current)) # missing attribute
> django.template.base.VariableDoesNotExist: Failed lookup for key
[subtitle] in
> }}}
>
> I believe this can be fixed by providing `subtitle: None` in the
AdminSite.each_context` method to default it to that. I am happy to create
a PR for this.
>
> On second though - instead of hardcoding `subtitle` to None -
potentially it should be a customisable option in the AdminSite itself,
so:
>
> {{{
> class MySite(AdminSite):
> site_header = "blah"
> subtitle = "my subtitle"
> }}}
>
> ?
--
Ticket URL: <https://code.djangoproject.com/ticket/32681#comment:11>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/063.d412bed443c8f8311b8fd501e9c1213e%40djangoproject.com.