Gab*_*Gab 5 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 = get_choices_for_region(
self['region'].field.initial)
Run Code Online (Sandbox Code Playgroud)
区域选择取决于国家选择。我有一个 ajax 例程来更新所选国家/地区的区域。我为该区域使用了 CharField,因此它将正确验证。
实际上,我在视图中使用数据预填充表单:
myform['country'].field.initial = 'Switzerland'
myform.update_region()
return ...
Run Code Online (Sandbox Code Playgroud)
问题:有没有办法强制区域选择随着更新国家/地区而自动更新?
我最近碰巧遇到了类似的问题(并且在这方面浪费了比我希望的更多的时间)。为了加快该过程,我首先在页面加载时在视图中创建了国家/地区列表。然后,借助小 Jquery Magic,您可以根据所选国家/地区字段动态设置区域字段。
另外,这里还有您在此链接中寻找的内容的简单实现。
此外,还有一个更好的替代方案,可以在每次更改国家/地区字段(以获取所选国家/地区的区域字典列表,我们将其称为regions_for_country)时进行 AJAX 调用以更新区域选项。在 Jquery 中找到执行部分工作的以下代码片段。
var html = $.map(regions_for_country, function(item){
return '<option value="' + item['key'] + '">' + item['value'] + '</option>'
}).join('');
Run Code Online (Sandbox Code Playgroud)
这将为选项生成 html 代码,您可以使用.html()命令轻松替换该代码。我更喜欢最后一种方法,因为在前一种方法中,我们浪费时间生成国家/地区的键值对,这对于大数据集可能是有害的。
| 归档时间: |
|
| 查看次数: |
3007 次 |
| 最近记录: |