#36913: Optimise ChoiceField / MultipleChoiceField handling of duplicate
submissions
-------------------------------------+-------------------------------------
Reporter: Jake | Owner: Sarah Boyce
Howard |
Type: | Status: assigned
Cleanup/optimization |
Component: Forms | Version: 6.0
Severity: Normal | Keywords:
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
When a ChoiceField / MultipleChoiceField has 5 possible choices, but the
form submits 25 values, the `choices` values are compared once per
submitted value. If the submitted values are duplicates, the validation
doesn't terminate early, but can still spend a lot of time unnecessarily
validating values. This can be very slow when large (~30k) numbers of
values are submitted.
A suggested fix is to only validate the unique submitted values (for
example `for val in set(value)`).
This issue was reported to the Security Team, but deemed not a security
issue due to the minimal impact when given reasonable input (in the bounds
of the security policy).
--
Ticket URL: <
https://code.djangoproject.com/ticket/36913>
Django <
https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.