TypedChoiceField или ChoiceField в Джанго
когда вы должны использовать TypedChoiceField с функцией принуждения над ChoiceField с чистым методом в форме для поля?
другими словами, почему вы используете MyForm над MyForm2 или наоборот. Это просто вопрос предпочтения?
from django import forms
CHOICES = (('1', 'A'), ('2', 'B'), ('3', 'C'))
class MyForm(forms.Form):
my_field = ChoiceField(choices=CHOICES)
def clean_my_field(self):
value = self.cleaned_data['my_field']
return int(value)
class MyForm2(forms.Form):
my_field = TypedChoiceField(choices=CHOICES, coerce=int)
1 ответов
Я бы использовал clean_field
метод делает "тяжелую работу". Например, если ваше поле требует нетривиальной, пользовательской очистки и / или преобразования типов и т. д. Если, с другой стороны, требование является простым, например, принуждение к int
тут clean_field
is наверное излишним. TypedChoiceField
было бы в этом случае.