#23681: NullBooleanSelect should have empty_label or similar
-----------------------------+--------------------
Reporter: benjaoming | Owner: nobody
Type: New feature | Status: new
Component: Forms | Version: master
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 1 | UI/UX: 0
-----------------------------+--------------------
`NullBooleanSelect` is responsible of making the values 1, 2, and 3 turn
into None, True or False. That's why having custom "choices" kwarg is
perhaps a bit over the top. Well, it's pretty meaningless to have a
utility class if you start passing a choices kwarg that contains half of
the code that makes up NullBooleanSelect.
However, I need one small feature from this widget! Namely, that the
following...
{{{
class NullBooleanSelect(Select):
"""
A Select Widget intended to be used with NullBooleanField.
"""
def __init__(self, attrs=None):
choices = (('1', ugettext_lazy('Unknown')),
('2', ugettext_lazy('Yes')),
('3', ugettext_lazy('No')))
super(NullBooleanSelect, self).__init__(attrs, choices)
}}}
...is changed to:
{{{
class NullBooleanSelect(Select):
"""
A Select Widget intended to be used with NullBooleanField.
"""
def __init__(self, empty_label=None, attrs=None):
choices = (('1', empty_label or ugettext_lazy('Unknown')),
('2', ugettext_lazy('Yes')),
('3', ugettext_lazy('No')))
super(NullBooleanSelect, self).__init__(attrs, choices)
}}}
The motivation is that I often leave out labels to have them put as the
default first option of the Select. An example use:
{{{
class MyForm(forms.Form):
has_payments = forms.NullBooleanField(
label="",
required=False,
widget=NullBooleanSelect(empty_label=_(u"Has previous payments?"))
help_text=_(u"Only show subscriptions that have previously been
charged"),
)
}}}
Even more preferable, would be to place the `empty_label` kwarg in
`NullBooleanField`, as that would match the options for ModelChoiceField.
--
Ticket URL: <https://code.djangoproject.com/ticket/23681>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/053.f9afd42766958380859082eddb4789bc%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.