如何在Django中选择其他选择框时显示其他选择框

如何在Django中选择其他选择框时显示其他选择框,django,Django,我是Django的新手。 现在我定义了下面的类 PROPERTY_TYPE_CHOICE = [['1', 'Fixed (TODO)'], ['2', 'Trajectory (TODO)'], ['3', 'Error_Detecting'], ['4', 'Error_Correcting']] FIXED_TYPE_CHOICE = [['1', 'Prefix',

我是Django的新手。 现在我定义了下面的类

PROPERTY_TYPE_CHOICE = [['1', 'Fixed (TODO)'],
                    ['2', 'Trajectory (TODO)'],
                    ['3', 'Error_Detecting'],
                    ['4', 'Error_Correcting']]
FIXED_TYPE_CHOICE = [['1', 'Prefix',
                      '2', 'Suffix']]

class UploadFileForm(forms.Form):
    # title = forms.CharField(max_length=50)
    automata_file  = forms.FileField(required = True)
    transducer_file = forms.FileField(required = True)
    property_type = forms.ChoiceField(choices=PROPERTY_TYPE_CHOICE,
                                      required=True)
    fixed_type = forms.ChoiceField(choices=FIXED_TYPE_CHOICE,
                                   required=True)
    debug_output = forms.BooleanField(required=False)
我在前面的html中显示了这个属性类型选择

<div class="fieldWrapper">
    {{ form.property_type.errors }}
    <label for="id_a">Select <u>a type</u> of property:</label>
    {{ form.property_type }}
</div>

{{form.property_type.errors}}
选择一种属性类型:
{{form.property_type}
如果我在属性类型选项中选择第一个选项“FIXED(TODO)”,我想显示FIXED类型选项。 我阅读了关于Django的文档,我认为它可以这样实现:

<div class="fieldWrapper">
    {{ form.property_type.errors }}
    <label for="id_a">Select <u>a type</u> of property:</label>
    {{ form.property_type }}
</div>
{% if form.property_type=='1' %}
    <div class="fieldWrapper">
        {{ form.fixed_type.errors }}
        <label for="id_a">Select <u>a fixed type</u> of property:</label>
    {   { form.fixed_type }}
    </div>
{% endif %}

{{form.property_type.errors}}
选择一种属性类型:
{{form.property_type}
{%if form.property_type=='1%}
{{form.fixed_type.errors}}
选择固定类型的属性:
{{form.fixed_type}
{%endif%}
但我不能那样做。
我该怎么办?谢谢。

form.property\u type是一个BoundForm对象,如果要访问其值,需要使用
form.property\u type.value

这就是为什么对
{%if form.property_type=='1'}
的比较不起作用的原因

有关更多详细信息,请参见“自定义表单模板”部分下的2/3

要在不刷新页面的情况下进行更新,需要如下Javascript(确保还包括jQuery库(http://jquery.com/):


并确保为下拉列表提供相应的id属性(
id=“property\u type”
),例如。

您是否试图让它在选择“Fixed”后立即显示第二个框从下拉列表中,或者在页面刷新后?如果您希望它在不刷新页面的情况下显示,您需要使用Javascript。我正在尝试在不刷新页面的情况下尽快显示第二个框。您知道Javascript的代码吗?用一些Javascript更新了我的答案,这应该给您一个开始“接受”的位置我的答案是否对你有效?你可以通过按下旁边的复选标记来接受。
$("#property_type").change (function() {
    if($(this).val() == '1') {
        $("#fixed_type").show();
    } else {
        $("#fixed_type").hide();
    }
} )