Javascript 我应该如何在Django表单中实现条件逻辑?

Javascript 我应该如何在Django表单中实现条件逻辑?,javascript,jquery,python,django,Javascript,Jquery,Python,Django,我试图在Django模型表单中添加一些条件逻辑,这比我预期的要困难得多。我想做的是:如果用户选择选项a,我想再显示一个问题,如果他们选择选项B,我想显示另一个问题 我发现——这正是我想要的,它说从创建具有可选值(即非必需)的字段开始,然后根据逻辑使用Javascript隐藏字段。但这并不能解释怎么做 我想我可以理解JS位,但我想了解的是如何以及在哪里添加它。我假设在forms.py中,在一个小部件attrs中? 如果可能的话,我想要一个实现示例。提前多谢 正如您已经提到的,最简单的方法是创建一个

我试图在Django模型表单中添加一些条件逻辑,这比我预期的要困难得多。我想做的是:如果用户选择选项a,我想再显示一个问题,如果他们选择选项B,我想显示另一个问题

我发现——这正是我想要的,它说从创建具有可选值(即非必需)的字段开始,然后根据逻辑使用Javascript隐藏字段。但这并不能解释怎么做

我想我可以理解JS位,但我想了解的是如何以及在哪里添加它。我假设在forms.py中,在一个小部件attrs中?
如果可能的话,我想要一个实现示例。提前多谢

正如您已经提到的,最简单的方法是创建一个包含所有字段(必需和可选)的表单,并使其中一些字段在您希望它们出现之前不可见(例如,通过选择其他字段中的某个选项)。 为此,您应该:

  • 在forms.py中创建一个包含所有所需字段的表单

    Class MyForm(forms.Form):
        #fields go here
    
  • 将表单传递给所需的模板

    def myview(request):
        form = MyForm()
        c = {'form': form}
        return render(request, 'mytemplate.html', c)
    
    <form action="/your-name/" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Submit" />
    </form>
    
  • 在模板中呈现表单

    def myview(request):
        form = MyForm()
        c = {'form': form}
        return render(request, 'mytemplate.html', c)
    
    <form action="/your-name/" method="post">
        {% csrf_token %}
        {{ form }}
        <input type="submit" value="Submit" />
    </form>
    

  • 当然,还有其他方法可以创建动态表单。

    您可以查看一下。html页面模板中有Javascript。谢谢,chem1st。我已经完成了步骤1、2和3。如何为字段提供id?如果是一个有两个选择的CharField,比如说“是”和“否”,我如何设置逻辑“如果答案是“是”,那么就这样做”?Django表单已经有内置ID-。问题是我没有意识到Django表单有内置ID,而我一直在想如何让js工作!再次感谢!