Python Django form ChoiceField依赖于另一个ChoiceField
我有以下表格:Python Django form ChoiceField依赖于另一个ChoiceField,python,django,python-2.7,django-1.6,Python,Django,Python 2.7,Django 1.6,我有以下表格: 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 =
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 ...
问题:是否有办法通过更新国家/地区来强制区域选择自动更新 我最近碰巧遇到了类似的问题(在这方面浪费的时间比我希望的要多)。为了加快进程,我首先在加载页面时在视图中创建了国家/地区列表。然后,借助小Jquery魔术,您可以根据所选的国家字段动态设置region字段 此外,这里是一个简单的实现什么,你正在寻找在这个 此外,还有一个更好的选择,即在每次更改国家/地区字段(为了获取所选国家/地区的地区目录列表,我们将其称为地区/国家/地区)以更新地区选项时进行AJAX调用。在Jquery中查找执行部分作业的以下代码段
var html = $.map(regions_for_country, function(item){
return '<option value="' + item['key'] + '">' + item['value'] + '</option>'
}).join('');
var html=$.map(地区、国家、功能(项目){
返回“”+项['value']+''
}).加入(“”);
这将生成选项的html代码,您可以使用命令轻松替换这些选项。我更喜欢上一种方法,因为在前一种方法中,我们正在浪费时间生成国家/地区的键值对,这可能对大型数据集有害。看看这个包中的链接选择,我必须做一个类似的项目,我有3个选择器
大陆->国家->地区
,最后我通过JQuery和AJAX管理它们,每次大陆变化时,国家选择器加载相关的国家和地区选择器empty@Razcou,这个项目的问题是,它似乎都来自于模型。在我的例子中,它是一个没有相关模型的表单。在这种情况下,我发现一个预编译的Lodash模板对于从JSON数据中交换动态HTML非常有用——在没有正式的JS MVC框架(如主干或角度)的情况下: