Re: [Django] #35433: NumberInput min_value attr overridden by IntegerField.widget_attrs (was: NumberInput off-by-one on min value for type range)

4 views
Skip to first unread message

Django

unread,
May 5, 2024, 10:26:48 PMMay 5
to django-...@googlegroups.com
#35433: NumberInput min_value attr overridden by IntegerField.widget_attrs
-------------------------+--------------------------------------
Reporter: mitch99 | Owner: nobody
Type: Bug | Status: new
Component: Forms | Version: 5.0
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------+--------------------------------------
Changes (by Tim Graham):

* easy: 1 => 0
* summary: NumberInput off-by-one on min value for type range =>
NumberInput min_value attr overridden by IntegerField.widget_attrs

Comment:

The root cause is that `Field.__init__()`
[https://github.com/django/django/blob/9a27c76021f934201cccf12215514a3091325ec8/django/forms/fields.py#L158-L160
overrides a widget's attrs] with `Field.widget_attrs` which includes
`min_value=0` from
[https://github.com/django/django/blob/9a27c76021f934201cccf12215514a3091325ec8/django/db/models/fields/__init__.py#L2401
PositiveIntegerField.formfield()].

I'm not sure if we should change the behavior. The most appropriate fix
for your use case might be to subclass `PositiveIntegerField` and override
`formfield()` to set `min_value=1`.
--
Ticket URL: <https://code.djangoproject.com/ticket/35433#comment:5>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Reply all
Reply to author
Forward
0 new messages