我在使用国际角色的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上看到的那样,我调用了Regions函数并传递了两个参数。回叫的名称和选定的值
这是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和back ...之间推送它。但我尝试的似乎没有工作...
这是一个Dajaxice,Django还是python问题......还是我在这里错过了一些非常简单的东西?
我已经有两天了,试图解决这个问题......非常感谢您提供的任何帮助。
干杯
答案 0 :(得分:1)
好的,修好了......
因此,对于使用Dajaxice并使用国际字符的其他人,您应该从以下内容更改Dajaxice.core.js文件中的第10行:
send_data.push( '的argv =' +逸出(JSON.stringify(argv的)));
到此:
send_data.push( '的argv =' + encodeURIComponent方法(JSON.stringify(argv的)));
并且一切正常。
实际上,两天几个小时的生活陷入了晦涩难懂的代码之中....... 帮助我们所有人!