ChoiceField vs TypedChoiceField (Django)
Я прочитал документацию о ChoiceField и TypedChoiceField, но смог понять только то, что оба могут создать Dropdown Select Box, который выглядит точно так же, как показано ниже:
Код с ChoiceField ниже:
FRUITS = (
(1,'Apple'),
(2,'Orange'),
(3,'Banana')
)
fruits = forms.ChoiceField(choices=FRUITS) # Here
Код с TypedChoiceField ниже:
FRUITS = (
(1,'Apple'),
(2,'Orange'),
(3,'Banana')
)
fruits = forms.TypedChoiceField(choices=FRUITS) # Here
Мои вопросы:
- В чем разница между ChoiceField и TypedChoiceField?
- Когда использовать ChoiceField и TypedChoiceField?
TypedChoiceField имеет один дополнительный обязательный аргумент:
choices: Либо итерабель двух кортежей для использования в качестве вариантов для этого поля, либо вызываемая переменная, возвращающая такую итерабель. Этот аргумент принимает те же форматы, что и аргумент choices для поля модели.
TypedChoiceField имеет два необязательных аргумента:
coerce Функция, которая принимает один аргумент и возвращает принудительное значение. Примеры включают встроенные типы int, float, bool и другие. По умолчанию используется функция тождества. пустое_значение: Значение, используемое для представления "пусто". По умолчанию - пустая строка; None - другой распространенный вариант.