Более безопасный и гибкий способ:
import urllib
from django.core.urlresolvers import reverse
def build_url(*args, **kwargs):
get = kwargs.pop('get', {})
url = reverse(*args, **kwargs)
if get:
url += '?' + urllib.urlencode(get)
return url
, тогда вы можете использовать build_url
:
url = build_url('view-name', get={'name': 'joe'})
, который принимает те же аргументы, что и reverse
, но предоставляет дополнительное ключевое словоАргумент get
, где вы можете поместить в него GET
параметры в виде словаря.