我在使用带有国际字符的 Djajaxice 时遇到问题...
我有一个 django 模板...在该模板中是以下选择:
<select name="region" id="id" onchange="Dajaxice.crc.regions('my_callback',{'data':this.value});">
<option value="" selected="selected" ></option>
{% for region in regions %}
<option value="{{ region.region }}">{{ region.region }}</option>
{% endfor %}
</select>
正如您在 select 的 onchange 中看到的那样,我正在调用 region 函数并向其传递两个参数。回调的名称和选择的值
这是 ajax.py 文件中的函数
def regions(request, data):
CityList = City.objects.filter(region__exact=data)
out = "".join(['<option value="%s">%s</option>' % (c.city,c.city) for c in CityList])
return simplejson.dumps(out)
dajaxice_functions.register(regions)
这可以正常工作,并且当区域名称中没有任何国际字符时,使用相关数据调用模板中的我的 JavaScript 函数没有问题。
例如说“安塔利亚”。然而,当像“Muğla”这样的地区出现时,它就不起作用了。仔细检查后,变量数据包含“Mu%u011Fla”,我似乎无法将其恢复为我认为的必要格式,以便 Django 可以正确访问模型数据。
我已经使用了页面顶部的魔术引号,我尝试使用 data.decode('string-escape') 对其进行转义并将其推到 utf-8 和返回之间..但我尝试的任何方法似乎都不起作用.. .
这是 Dajaxice、Django 还是 python 问题……还是我在这里遗漏了一些非常简单的东西?
我已经做了两天了,试图解决这个问题....非常感谢您提供的任何帮助。
干杯