-
-
Save benbacardi/227f924ec1d9bedd242b to your computer and use it in GitHub Desktop.
from django.utils.http import urlencode | |
def reverse_querystring(view, urlconf=None, args=None, kwargs=None, current_app=None, query_kwargs=None): | |
'''Custom reverse to handle query strings. | |
Usage: | |
reverse('app.views.my_view', kwargs={'pk': 123}, query_kwargs={'search': 'Bob'}) | |
''' | |
base_url = reverse(view, urlconf=urlconf, args=args, kwargs=kwargs, current_app=current_app) | |
if query_kwargs: | |
return '{}?{}'.format(base_url, urlencode(query_kwargs)) | |
return base_url |
Good spot! Fixed.
How on earth did you come across this snippet anyway!?
Came across this while Googling for 'django url reverse with query string'. I don't think https://code.djangoproject.com/ticket/25582 will be a core enhancement anytime soon. Great solution!
Ditto. I can't believe it's not available yet. Thanks Ben!
This is a neat function. Thanks @benbacardi . Under what license do you provide this gist? Could you please add it, so we can reuse it?
@GrazingScientist take it and use it as you wish, no attribution required! It's a simple snippet :)
Thanks!!
Good ol' google search pointed me here :)
Came across this while Googling for 'django url reverse with query string'. I don't think https://code.djangoproject.com/ticket/25582 will be a core enhancement anytime soon. Great solution!
That ticket got marked resolved 5 weeks ago. It's not in 5.1, but in the pre-release 5.2 version.
That ticket got marked resolved 5 weeks ago. It's not in 5.1, but in the pre-release 5.2 version.
😮 That's awesome!
dope!
Hi ! Great solution ! 👍
query_kwargs={'search', 'Bob'}
should bequery_kwargs={'search': 'Bob'}
For the other hand, you missed a parenthesis in:
'{}?{}'.format(base_url, urlencode(query_kwargs))