0001-utils-ignore-URL-parameters-with-a-None-value-29242.patch
src/authentic2/utils.py | ||
---|---|---|
264 | 264 |
If you pass a request you can ask to keep params from it, exclude some |
265 | 265 |
of them or include only a subset of them. |
266 | 266 |
You can set parameters or append to existing one. |
267 |
If a parameter value is None, it clears the parameter from the URL, if |
|
268 |
the parameter was appended, it's just ignored. |
|
267 | 269 |
''' |
268 | 270 |
if resolve: |
269 | 271 |
url = resolve_url(to, *args, **kwargs) |
... | ... | |
284 | 286 |
url_params.setlist(key, request.GET.getlist(key)) |
285 | 287 |
if params: |
286 | 288 |
for key, value in params.iteritems(): |
287 |
if isinstance(value, (tuple, list)): |
|
289 |
if value is None: |
|
290 |
url_params.pop(key, None) |
|
291 |
elif isinstance(value, (tuple, list)): |
|
288 | 292 |
url_params.setlist(key, value) |
289 | 293 |
else: |
290 | 294 |
url_params[key] = value |
291 | 295 |
if append: |
292 | 296 |
for key, value in append.iteritems(): |
293 |
if isinstance(value, (tuple, list)): |
|
297 |
if value is None: |
|
298 |
continue |
|
299 |
elif isinstance(value, (tuple, list)): |
|
294 | 300 |
url_params.extend({key: value}) |
295 | 301 |
else: |
296 | 302 |
url_params.appendlist(key, value) |
297 |
- |