On Fri, Feb 4, 2011 at 12:12 PM, Tom Evans <[email protected]> wrote:
> On Fri, Feb 4, 2011 at 11:07 AM, Marc Aymerich <[email protected]> wrote:
>> Hi
>> In some choices widgets I want to represent null values as u'No
>> period' instead of u'--------'
>>
>> I try with:
>>
>> PERIOD_CHOICES = getattr(settings, 'PERIOD_CHOICES',
>>                                                     ((None,
>> ugettext('No Period')),
>>                                                     (DAILY, 
>> ugettext('Daily')),
>>                                                     (MONTHLY,
>> ugettext('Monthly')),
>>                                                     (ANUAL, 
>> ugettext('Anual')),
>>                                                     ))
>> period = models.CharField(max_length=1,
>> choices=settings.PERIOD_CHOICES, null=True)
>>
>> But when I choose "No Period" I get this form validation error: Value
>> u'None' is not a valid choice.
>>
>> Any idea?
>> Thanks!
>
> form.Field doesn't take null as an option, you want required[1]:
>
> """
> By default, each Field class assumes the value is required, so if you
> pass an empty value -- either None or the empty string ("") -- then
> clean() will raise a ValidationError exception:
> """
>
> Cheers
>
> Tom
>
> [1] http://docs.djangoproject.com/en/1.2/ref/forms/fields/#required


Hi Tom,
I override the default admin form with this:

class MonitorAdminForm(ModelForm):
    class Meta:
        model = Monitor
    period = forms.ChoiceField(required=False, choices =
settings.PERIOD_CHOICES)

Now period has required=False but still raise the validation error:
Value u'None' is not a valid choice.

What is strange for me is although I put the None value on
PERIOD_CHOICES the error seems to say that None is interpreted as a
unicode instead of None. Maybe this is the point, if it's, how can I
declare a null value in PERIOD_CHOICES definition ?

Thanks!





-- 
Marc

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to