Opened 3 years ago

Closed 3 years ago

#33447 closed New feature (wontfix)

min_num on formsets should not just be added to extra, again

Reported by: typonaut Owned by: nobody
Component: Forms Version: 3.2
Severity: Normal Keywords: inlineformset_factory min_num extra
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: yes

Description (last modified by typonaut)

I have read #22628 and #27679.

I can see that the documentation says that if you have min_num = 1 and extra = 1 then you will get two blank inline forms in a new form.

I am flagging this as a new feature, although I think it is really a bug.

When using forms.models.inlineformset_factory min_num and extra input parameters are available. Logically min_num is really a validation parameter where extra is a utility/UI parameter. I believe that given this logic, with a new form and min_num = 1 and extra = 1 then there should only be one inline form displayed, rather than two as currently happens.

I would propose to add an additional input parameter to control this bahaviour and account for any backward compatibility issues: min_num_minimise as a boolean.

forms.models.inlineformset_factory(… 
                  extra=1,
                  min_num=1,
                  min_num_minimise=True
                  )

This would render one inline form on a new form, where:

forms.models.inlineformset_factory(…
                  extra=1,
                  min_num=1,
                  min_num_minimise=False,
                  )

Would maintain the current behaviour – with the default being min_num_minimise=False.

I believe that the current implementation is more than a little confusing from a UI perspective. While it is possible to code around this implementation and test for at least min_num forms, that is quite a lot of work and more prone to break with updates.

In addition, there is a bug in behaviour: if min_num is greater than zero, a form action that deletes all existing inline forms is valid, which should not be the case.

Change History (2)

comment:1 by typonaut, 3 years ago

Description: modified (diff)

comment:2 by Carlton Gibson, 3 years ago

Resolution: wontfix
Status: newclosed

Hi.

I'm going to have to say wontfix here: Given the discussion on #27679 (and the linked PR) it needs a consensus for change.

No arguments for the breaking were put forward in the four or so years #27679 was left open, and I can't see there being an appetite for introducing the single use kwarg here.
Nonetheless, if you want to write up the proposal (with links to the relevant history) for the DevelopersMailingList, you can do that to see.

Thanks.

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