How do i pass GET parameters using django urlresolvers reverse

前端 未结 4 2063
情深已故
情深已故 2020-12-13 05:30

I am using django 1.2 and going from one view to another using the urlresolvers reverse method.

url = reverse(viewOne)

and I want to pass a

4条回答
  •  情深已故
    2020-12-13 06:04

    This is very similar to Amir's solution but handles lists as well.

    from django.core.urlresolvers import reverse
    from django.http import QueryDict
    
    def build_url(*args, **kwargs):
        params = kwargs.pop('params', {})
        url = reverse(*args, **kwargs)
        if not params: return url
    
        qdict = QueryDict('', mutable=True)
        for k, v in params.iteritems():
            if type(v) is list: qdict.setlist(k, v)
            else: qdict[k] = v
    
        return url + '?' + qdict.urlencode()
    

    Example usage:

    >>> build_url('member-list', params={'format': 'html', 'sex': ['male', 'female']})
    u'/members/?format=html&sex=male&sex=female'
    

提交回复
热议问题