我是django的新手。在form.py中我需要这样的东西:
class SearchForm(forms.Form):
CHOICES1 = (('a','a'),
('b','b'),)
field1 = forms.ChoiceField(choices=CHOICES1)
#if field1=='a':
CHOICES2 = (('c','c'),
('d','d'),)
field2 = forms.ChoiceField(choices=CHOICES2)
#if field1=='b':
CHOICES2 = (('e','e'),
('f','f'),)
field2 = forms.ChoiceField(choices=CHOICES2)
但我不知道该怎么做。
答案 0 :(得分:1)
没有简单的方法可以做到这一点。您需要在服务器上进行Javascript和自定义验证。
使用jQuery,客户端代码可能如下所示:
var F2_CHOICES = {
'a' : { 'c' : 'c', 'd' : 'd'},
'b' : { 'e' : 'e', 'f' : 'f'}
};
var $field2 = $('[name=field2]');
$('[name=field1]').change(
function() {
var currentValue = $(this).val() ;
$field2.empty();
for (o in F2_CHOICES[currentValue]){
$field2.append('<option '+' value="'+o+'">'+F2_CHOICES[currentValue][o]+'</option>');
}
});
在服务器上,您需要在表单上定义clean
方法,以检查field2值是否是与field1值对应的选项之一。