我想允许用户在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个字符。
答案 0 :(得分:0)
这是在评论中建议的,但是您的情况听起来完全像您想要的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()
词典的输出合并即可