#8110: Admin interface: 'long' object has no attribute 'isdigit'
-------------------------------------------+--------------------------------
Reporter: anonymous | Owner: nobody
Status: reopened | Milestone: 1.0
Component: django.contrib.admin | Version: 1.0
Resolution: | Keywords:
Stage: Accepted | Has_patch: 1
Needs_docs: 0 | Needs_tests: 0
Needs_better_patch: 0 |
-------------------------------------------+--------------------------------
Comment (by kmtracey):
OK, has anyone hit this WITHOUT having byteflow installed? Because after
looking into byteflow I understand why it happens there: byteflow replaces
Django's django.template.loader.get_template with its own
cached_get_template which re-uses compiled templates:
{{{
#!python
TEMPLATE_CACHE = {}
def cached_get_template(template_name):
global TEMPLATE_CACHE
t = TEMPLATE_CACHE.get(template_name, None)
if not t or settings.DEBUG:
source, origin = loader.find_template_source(template_name)
t = loader.get_template_from_string(source, origin, template_name)
TEMPLATE_CACHE[template_name] = t
return t
}}}
That code also explains why this has only been observed with DEBUG set to
False.
So, there is no mysterious re-use of compiled templates within Django
itself, it's being done by the app. Assuming that's a legit thing for an
app to do (?) the simple fix of avoiding changing self within render fixes
it.
(Actually it strikes me as not a very legit thing to be doing because if
multiple apps do what byteflow does:
{{{
#!python
from django import template
from lib.template_loaders import cached_get_template
template.loader.get_template = cached_get_template
}}}
the last one "wins" and the custom code of the others gets ignored. But
there it is doing it, and the result is the admin interface generates a
500 error, which is ugly. Also if/when some form of "supported" template
caching does get implemented, that would also run into trouble here. So I
do think it has exposed a real bug in the render() function that we need
to fix, despite not particularly liking what byteflow has done here. And
I wonder how many other template tags may have similar issues with re-use
of compiled versions.)
--
Ticket URL: <http://code.djangoproject.com/ticket/8110#comment:25>
Django <http://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 post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---