Выбор поля Django и проблема ввода текста - PullRequest
0 голосов
/ 23 мая 2019

Я хочу разрешить пользователю расширить (добавить дополнительный текст в том же поле) выбранную опцию для поля модели Django.

У меня есть рабочее поле выбора формы, но оно не позволяет добавлять или расширять выбранный элемент.Это как и ожидалось.В реальном мире я хочу добавить некоторую информацию к выбранной опции.Можно ли это сделать?

class MedicalForm(forms.ModelForm):
    OPTIONS = (
                ("COLD", "Common cold"),
                ("FLU", "Flu strain"),
                ("VIRUS", "Unknown virus"),
                )
    illness = forms.CharField(max_length=60, label='What is wrong?',  widget=forms.(choices=OPTIONS))

Я бы хотел, чтобы пользователь описал симптомы, например, после выбора опции.Я разрешаю 60 символов для поля болезни.

1 Ответ

0 голосов
/ 23 мая 2019

Это было предложено в комментарии, но ваша ситуация звучит так, как вы хотите ChoiceField

OPTIONS = (
                ("COLD", "Common cold"),
                ("FLU", "Flu strain"),
                ("VIRUS", "Unknown virus"),
                )

illnesses = forms.ChoiceField(choices=OPTIONS, widget=forms.Select(), required=True)

Это предоставляет выпадающий элемент выбора, представленный в форме, с вашими опциями в качестве вариантов выбора.

Затем вы можете использовать CharField, чтобы разрешить описание симптомов. Разве это не то, что вы ищете?

description = forms.CharField(max_length=60, label='What is wrong?', required=True)

С точки зрения фактического превращения CharField в одновременно вариант выбора, так как предоставленный вами код выглядит немного, это невозможно с базовой функциональностью, предоставляемой Django, и я не уверен, что на самом деле понимаю Идея того, что вы хотите с этим.

Если вам нужно, чтобы представленные данные были сохранены в одном столбце базы данных, просто объедините вывод из словаря form.cleaned_data после вызова if form.is_valid()

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