Django形式的ChoiceField或CharField

时间:2010-03-19 15:21:44

标签: django

我在模型中有一个需要由ChoiceField选择的CharField。如果用户的选择不在选择字段中,则他们选择“其他”并能够输入文本输入。我怎样才能做到这一点?我不需要javascript;只是帮助django部分。

3 个答案:

答案 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如果用户选择其他'在选择中。