The urlencode filter is actually urlquote and it doesn't accept the safe parameter
|Reported by:||KyleMac||Owned by:||SmileyChris|
|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 5 years ago by anonymous
- Component changed from Serialization to Template system
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
Changed 5 years ago by SmileyChris
comment:3 Changed 5 years ago by SmileyChris
- Has patch set
- Owner changed from nobody to SmileyChris
- Status changed from new to assigned
- Triage Stage changed from Accepted to Ready for checkin