Opened 9 years ago
Last modified 9 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
Querydictis a bit different than python dicts - Make
QueryDictbehave 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.