Opened 7 years ago

Last modified 7 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:

  1. Update the documentation and make explicit that a generator is returned and that Querydict is a bit different than python dicts
  2. 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.

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top