我在模型中有一个需要由ChoiceField选择的CharField。如果用户的选择不在选择字段中,则他们选择“其他”并能够输入文本输入。我怎样才能做到这一点?我不需要javascript;只是帮助django部分。
答案 0 :(得分:5)
最好的方法是在模型/表单中只使用CharField,使用自定义小部件显示您的选择,并使用正确的行为显示“其他”。
答案 1 :(得分:2)
RZ有一个很好的解决方案
另一种解决方案(使用较少的javascript)是在您的ChoiceField上选择“其他”选项时隐藏的“其他”CharField可见
修改:隐藏在style="display: none;"
而不是HiddenInput字段
类似(使用jQuery):
$("#id_myChoiceField").change(function() {
if ($(this).val() == 'other') {
$("#id_myOtherInput").show();
}
else {
$("#id_myOtherInput").hide();
}
});
您必须编写自己的验证码并在“其他”Charfield上设置required=False
答案 2 :(得分:0)
您对该表单的类应如下所示:
class ChoicesForm(forms.ModelForm):
# some other fields here
...
other = forms.CharField(required=False)
...
只需创建一个显示'其他'的JavaScript如果用户选择其他'在选择中。