Как реализовать «другие» в Django Model Choices-Чарфилде - PullRequest
0 голосов
/ 05 ноября 2019

было интересно, знает ли кто-нибудь здесь о хорошей реализации для выбора «других» (где пользователь может вводить пользовательский текст) в множественный выбор моделей django… скажем, например, у меня есть поле модели с множественным выбором «options» спредварительно установить выбор a и b.

options = models.CharField (
    max_length=2,
    choices=[(a,'a'), (b,'b')],
    default=a,
)

Что если я хочу, чтобы пользователь мог выбрать вариант «другие», и в этом случае введите его собственный текст, т. Е. «D». Единственный способ, которым я могу думать, - это использовать другойполе, скажем options_custom (не вдаваясь в специфику модели и т. д. ниже приведен фрагмент кода для обсуждения)

options = models.CharField (
    max_length=2,
    choices=[(a,'a'), (b,'b'), ('others', 'others')],
    default=a,
)

# added this..
options_custom = models.CharField(max_length=2, blank=True, verbose_name="Input custom text here" )

# and put a conditional... if others then return options_custom
if choices == 'others':
    return options_custom  # something like this....

Что вы думаете? Буду признателен за любые указатели.

...