custom template tags in GAE django
In vanilla django, if you wanted to `{% load foo_tags %}, what you did wsa to create a importable templatetags namespace with a foo_tags.py
like this:
/
|- settings.py
|- manage.py
|- ...
|- templatetags/
|- __init__.py
|- foo_tags.py
But with Google App Engine's django (0.96), it's not so easy. The tag library mechanism tries to load django.templatetags.foo_tags
, which, for obvious reasons, will fail.
Here's what I came up with:
if not template.libraries.get('django.templatetags.bloggart_tags', None):
import bloggart_tags as tag_lib
template.libraries['django.templatetags.bloggart_tags'] = tag_lib.register
As you can guess, I ran into this problem while trying to add timezone offsets to atom.xml timestamps in bloggart; you can see the feature branch here.
While examining the code base for django 1.2 packaged with the GAE Python SDK, I believe that this issue can be resolved by just switching to django 1.2, but this will have to wait, as I'm too lazy to touch settings.py
and create a main.py
with django config.