﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
3553	urlpatterns uses urllib.quote/unquote should use urllib.quote/unquote_plus	justin-django@…	Graham King	"When using the + character to represent spaces in urls it is impossible to differentiate between a literal + and an escaped %2B in the url. 

Example
{{{
urlpatterns = (r'/search/(?<query>.*)$,app.search)
}}}

{{{
def search(request, query):
  print ""query: ""+query
}}}



Observed

Visiting  http://example.com/search/foo%2B+bar  causes django to print foo++bar


Expected

Visitin http://example.com/search/foo%2B+bar should cause django to print foo+ bar


Solution

I assume that django is using urllib.quote/unqoute   Changing it to use urllib.quote_plus and urllib.unqoute_plus would produce the expected behavior and not have any side affects

"		closed	Core (Other)	0.95		wontfix	sprintsept14		Design decision needed	0	0	1	0	0	0
