The urlencode filter is actually urlquote and it doesn't accept the safe parameter
|Reported by:||KyleMac||Owned by:||Chris Beaven|
|Cc:||Triage Stage:||Ready for checkin|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Isn't it a bit odd that the |urlencode filter is actually urllib.quote and not urllib.urlencode as the name would suggest? To make things worse it doesn't accept the safe parameter that urllib.quote takes.
I don't know whether it should deal with dictionaries or not like urllib.urlencode does, but I do believe that |urlencode should escape the same characters as urllib.urlencode.
Short story is that you can't escape a / for proper use in a query string with |urlencode because / is a default safe character in urllib.quote since / is acceptable in paths. The quickest fix would be to allow |urlencode to take the safe parameter and to have it default to an empty string.
Change History (6)
comment:1 Changed 6 years ago by
|Component:||Serialization → Template system|
|Patch needs improvement:||unset|
comment:3 Changed 6 years ago by
|Owner:||changed from nobody to Chris Beaven|
|Status:||new → assigned|
|Triage Stage:||Accepted → Ready for checkin|