ChoiceField vs TypedChoiceField (Django)

Я прочитал документацию о ChoiceField и TypedChoiceField, но смог понять только то, что оба могут создать Dropdown Select Box, который выглядит точно так же, как показано ниже:

enter image description here

Код с 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

Мои вопросы:

  1. В чем разница между ChoiceField и TypedChoiceField?
  2. Когда использовать ChoiceField и TypedChoiceField?

TypedChoiceField имеет один дополнительный обязательный аргумент:

choices: Либо итерабель двух кортежей для использования в качестве вариантов для этого поля, либо вызываемая переменная, возвращающая такую итерабель. Этот аргумент принимает те же форматы, что и аргумент choices для поля модели.

TypedChoiceField имеет два необязательных аргумента:

coerce Функция, которая принимает один аргумент и возвращает принудительное значение. Примеры включают встроенные типы int, float, bool и другие. По умолчанию используется функция тождества. пустое_значение: Значение, используемое для представления "пусто". По умолчанию - пустая строка; None - другой распространенный вариант.

Вернуться на верх