Querystring.stringify() drops an explicit empty-string scalar because _stringify_item() checks the serialized value with a truthiness test.
stringify({"filter": ""}) == "" # current behavior
This conflates an explicit empty value with None. In a URL query, filter= is distinct from omitting filter entirely. The behavior is also inconsistent across array formats, where an empty string can be retained by comma serialization.
Expected behavior: continue omitting None, but serialize an explicit empty string as filter=.
Querystring.stringify()drops an explicit empty-string scalar because_stringify_item()checks the serialized value with a truthiness test.This conflates an explicit empty value with
None. In a URL query,filter=is distinct from omittingfilterentirely. The behavior is also inconsistent across array formats, where an empty string can be retained by comma serialization.Expected behavior: continue omitting
None, but serialize an explicit empty string asfilter=.