Opened 4 years ago

Closed 4 years ago

#32042 closed Cleanup/optimization (fixed)

Incorrect messaging when validate_min/validate_max and min_num == max_num.

Reported by: meghanabhange Owned by: meghanabhange
Component: Forms Version: 3.1
Severity: Normal Keywords: formset, validate_min, validate_max
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

When using Django Formset, the error messaging isn't checking for the condition where both min_num and max_num are equal and both validate_min and validate_max are set to true.

Code highlighting:

class TestForm(forms.Form):
    msg = forms.CharField()

test_formset = formset_factory(
  TestForm, 
  min_num=2, 
  max_num=2, 
  validate_min=True, 
  validate_max=True)

When formset is created in the following way and both validate flags are set True the following error messages show up

  • If the supplied forms are less than two - please submit 2 or more forms expected please submit 2 forms similarly the reverse is also true when the forms are more than two it gives the error message saying please submit 2 or fewer forms expected please submit 2 forms

This was a bug reported on Wagtail and after investigating a little I noticed the incorrect messaging was coming from this part in the validation

Change History (3)

comment:1 by Mariusz Felisiak, 4 years ago

Has patch: set
Patch needs improvement: set
Summary: Incorrect messaging when both validate_min and validate_max are set true and min_num == max_num.Incorrect messaging when validate_min/validate_max and min_num == max_num.
Triage Stage: UnreviewedAccepted
Type: BugCleanup/optimization

Thanks for this ticket. I would change the current messages instead of introducing a new one, e.g.

  • too_many_forms: "Please submit at most %d forms."
  • too_few_forms: "Please submit at least %d forms."

this would be consistent with the current behavior of other min/max validators.

PR

comment:2 by Mariusz Felisiak, 4 years ago

Patch needs improvement: unset
Triage Stage: AcceptedReady for checkin

comment:3 by Mariusz Felisiak <felisiak.mariusz@…>, 4 years ago

Resolution: fixed
Status: assignedclosed

In 848770dd:

Fixed #32042 -- Improved error messages for the number of submitted forms in formsets.

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