Django字段选择和文本输入问题

时间:2019-05-23 17:21:19

标签: python django

我想允许用户在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 :(得分: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()词典的输出合并即可