【问题标题】:ChoiceField or CharField in django formdjango 形式的 ChoiceField 或 CharField
【发布时间】:2010-03-19 15:21:44
【问题描述】:

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

【问题讨论】:

    标签: django


    【解决方案1】:

    最好的方法是在您的模型/表单中只使用一个带有自定义小部件的 CharField,以显示您的选择和具有正确行为的“其他”。

    【讨论】:

      【解决方案2】:

      RZ有一个很好的解决方案

      另一种解决方案(使用较少的 javascript)是隐藏一个“其他”字符字段,当您在 ChoiceField 上选择“其他”选项时,该字符字段可见

      编辑:在style="display: none;" 中隐藏而不是HiddenInput 字段

      类似(使用 jQuery):

      $("#id_myChoiceField").change(function() {
          if ($(this).val() == 'other') {
              $("#id_myOtherInput").show();
          }
          else {
              $("#id_myOtherInput").hide();
          }
      });
      

      您必须编写自己的验证代码,并在“其他”字符域上设置 required=False

      【讨论】:

        【解决方案3】:

        该表单的类应如下所示:

        class ChoicesForm(forms.ModelForm):
            # some other fields here
            ...
            other = forms.CharField(required=False)
            ...
        

        如果用户在选项中选择“其他”,只需创建一个显示“其他”文本输入的 javascript。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-10
          • 2022-10-06
          • 1970-01-01
          • 2018-10-25
          • 2012-03-29
          • 1970-01-01
          • 2011-12-13
          相关资源
          最近更新 更多