Opened 102 minutes ago

Last modified 102 minutes ago

#36913 assigned Cleanup/optimization

Optimise ChoiceField / MultipleChoiceField handling of duplicate submissions

Reported by: Jake Howard Owned by: Sarah Boyce
Component: Forms Version: 6.0
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

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).

Change History (1)

comment:1 by Jake Howard, 102 minutes ago

Note that validation that submissions (and choices) are unique is being handled in a separate feature request: https://github.com/django/new-features/issues/121

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