Se podía validar el campo con 012.
CHOICES = (
('------------','-----------'), # first field is invalid.
('Foo', 'Foo')
)
class FooForm(forms.Form):
foo = forms.ChoiceField(choices=CHOICES)
def clean_foo(self):
data = self.cleaned_data.get('foo')
if data == self.fields['foo'].choices[0][0]:
raise forms.ValidationError('This field is required')
return data
Si es un ModelChoiceField, se puede suministrar el argumento empty_label
.
foo = forms.ModelChoiceField(queryset=Foo.objects.all(),
empty_label="-------------")
Esto mantendrá la forma requerida, y si se selecciona -----
, arrojará un error de validación.
Este es una buena idea, y evita escribir algún validador personalizado. –