我有以下表格:
class MyForm(forms.Form):
country = forms.ChoiceField(
widget = forms.Select()
)
region = forms.CharField(
widget = forms.Select()
)
def update_region(self):
self['region'].field.widget.choices = get_choices_for_region(
self['region'].field.initial)
区域选择取决于国家选择。我有一个ajax例程来更新所选国家/地区的区域。我在该区域使用了CharField,因此它将正确验证。
实际上,我在视图中预填充了包含数据的表单:
myform['country'].field.initial = 'Switzerland'
myform.update_region()
return ...
问题:有没有办法通过更新国家/地区强制区域选择自动更新?
答案 0 :(得分:0)
我最近碰巧遇到了类似的问题(浪费了很多时间,而不是浪费时间)。为了使过程快速,我首先在页面加载时在视图中创建了国家/地区列表。然后,在小Jquery Magic的帮助下,您可以根据所选的国家/地区字段动态设置区域字段。
此处还有一个简单的实现,您正在寻找link。
每当国家/地区的字段(获取所选国家/地区的区域列表,我们称之为regions_for_country)更改为更新区域选项时,还有一个更好的替代方法是进行AJAX调用。在Jquery中找到执行部分工作的以下代码段。
var html = $.map(regions_for_country, function(item){
return '<option value="' + item['key'] + '">' + item['value'] + '</option>'
}).join('');
这将生成可以使用.html()命令轻松替换的选项的html代码。我更喜欢上一种方法中的最后一种方法,我们浪费时间生成country-region的键值对,这对大数据集可能是有害的。