TypedChoiceField или ChoiceField в Django - PullRequest
12 голосов
/ 09 сентября 2010

Когда следует использовать 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 Ответ

12 голосов
/ 09 сентября 2010

Я бы использовал clean_field метод для выполнения "тяжелой работы".Например, если ваше поле требует нетривиальной, пользовательской очистки и / или преобразования типов и т. Д. Если, с другой стороны, требование является простым, например, приведение к int, то clean_field равно , вероятно , излишнему,TypedChoiceField было бы способом пойти в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...