Skip to content

Instantly share code, notes, and snippets.

@smizell
Created March 27, 2012 15:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save smizell/2217356 to your computer and use it in GitHub Desktop.
Save smizell/2217356 to your computer and use it in GitHub Desktop.
Query String Templatetag
import urllib
from django import template
from django.conf import settings
register = template.Library()
class GetQuery(template.Node):
def __init__(self, query_dict, key, value):
self.query_dict = template.Variable(query_dict)
self.key = key
if value.startswith('"'):
self.value = unicode(value[1:-1])
else:
self.value = template.Variable(value)
def render(self, context):
query_dict = self.query_dict.resolve(context).copy()
for exclude_field in settings.URL_EXCLUDE_FIELDS:
if query_dict.has_key(exclude_field):
del query_dict[exclude_field]
if type(self.value) == unicode:
query_dict[self.key] = self.value
else:
query_dict[self.key] = self.value.resolve(context)
print query_dict
return urllib.urlencode(query_dict)
@register.tag
def get_query(parser, token):
tag_name, query_dict, key, value = token.split_contents()
return GetQuery(query_dict, key, value)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment