Opened 8 years ago
Last modified 8 years ago
#28037 closed Bug
Inconsistency on QueryDict.items and documentation — at Initial Version
Reported by: | Daniel F Moisset | Owned by: | nobody |
---|---|---|---|
Component: | Documentation | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
There is a multiway inconsistency about the defined behaviour of QueryDict.items
(a similar thing happens for QueryDict.values`:
- The current implementation actually returns a generator object (supporting iteration only)
- The documentation says that it is "just like the standard dictionary
items()
method", which in Python3 returns a dict_items object (a view object, supporting set-like operations) - But the example in the documentation 2 lines below that show a standard python list (supporting indexing)
I see 2 different was to fix this:
- Update the documentation and make explicit that a generator is returned and that
Querydict
is a bit different than python dicts - Make
QueryDict
behave more like python by returning a set(). This should not break backwards compatibility (a set is more general than a generator), but use more memory (because the set must be fully built instead of generated lazily)
I can provide patches for any of these options, but some core devs recommended me getting an opinion of which is the right solution before moving forward.
Note:
See TracTickets
for help on using tickets.