blob: cfebd411670db55c2d8b18fb51c6c0c5c8e483ff (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# Borrowed from http://djangosnippets.org/snippets/361/
# Original author: johan de taeye
# With modifications from Ludwik Trammer
#
# Adds GET parameters to the current URL
from django.template import Library, Node, resolve_variable, TemplateSyntaxError, Variable
register = Library()
class AddParameter(Node):
def __init__(self, varname, value):
self.varname = Variable(varname)
self.value = Variable(value)
def render(self, context):
req = Variable('request').resolve(context)
params = req.GET.copy()
params[self.varname.resolve(context)] = self.value.resolve(context)
return '%s?%s' % (req.path, params.urlencode())
def addurlparameter(parser, token):
from re import split
bits = split(r'\s+', token.contents, 2)
if len(bits) < 2:
raise TemplateSyntaxError("'%s' tag requires two arguments" % bits[0])
return AddParameter(bits[1],bits[2])
register.tag('addurlparameter', addurlparameter)
|