我是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中显示了这个PROPERTY_TYPE_CHOICE
<div class="fieldWrapper">
{{ form.property_type.errors }}
<label for="id_a">Select <u>a type</u> of property:</label>
{{ form.property_type }}
</div>
如果我在PROPERTY_TYPE_CHOICE中选择第一个选择“Fixed(TODO)”,我想显示FIXED_TYPE_CHOICE。 我阅读了关于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 %}
但我做不到。 我该怎么办?谢谢。
答案 0 :(得分:0)
form.property_type
是一个BoundForm对象,如果您想要访问其值,则需要使用form.property_type.value
这就是{% if form.property_type=='1'}
的比较无效的原因。
有关详细信息,请参阅自定义表单模板部分下的this page约2/3的内容。
要在没有页面刷新的情况下进行更新,您需要以下Javascript(确保您还包含jQuery库(http://jquery.com/):
$("#property_type").change (function() {
if($(this).val() == '1') {
$("#fixed_type").show();
} else {
$("#fixed_type").hide();
}
} )
并确保例如给出下拉列表对应的id属性(id="property_type"
)。