Maybe because I have a list of values that I want the user to be able to select between. A list of 4 or so things that I want the user to be able to choose one or more of. Is there some better way to get this accomplished?
On Feb 19, 11:43 am, Karen Tracey <kmtra...@gmail.com> wrote: > On Thu, Feb 19, 2009 at 11:56 AM, Mark Jones <mark0...@gmail.com> wrote: > > > forms.IntegerField(widget=forms.CheckboxInput(attrs={'value':1}), > > required=False) > > > won't work because > > > def value_from_datadict(self, data, files, name): > > if name not in data: > > # A missing value means False because HTML form submission > > does not > > # send results for unselected checkboxes. > > return False > > return super(CheckboxInput, self).value_from_datadict(data, > > files, name) > > > returns False when the box is unchecked, and False is not one of the > > EMPTY_FIELDS so you end up with required=True even when you specify > > required=False > > Huh? The field doesn't become required. Rather the IntegerField is unable > to validate the value returned in the case where the check box is unchecked: > > Python 2.5.1 (r251:54863, Jul 31 2008, 23:17:40) > [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > (InteractiveConsole)>>> from django import forms > >>> class OBF(forms.Form): > > ... x = forms.IntegerField(widget=forms.CheckboxInput(attrs={'value':1}), > required=False) > ...>>> f = OBF({}) > >>> f.is_valid() > False > >>> f.errors > > {'x': [u'Enter a whole number.']} > > The error is not that the field is required, but that the value returned by > the widget cannot be interpreted by the IntegerField. > > > Not sure how to fix this for real, I've created a CheckboxInteger that > > returns None instead of False.... > > > Any better ideas? > > Don't try to marry a widget that returns one sort of data to a field that is > expecting something else? Seriously, why are you trying to hammer in your > nail with this screwdriver? > > Karen --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---