Python Django/Dajaxice和国际角色的问题

Python Django/Dajaxice和国际角色的问题,python,django,unicode,unicode-string,Python,Django,Unicode,Unicode String,我在国际角色中使用Djajaxice时遇到问题 我有一个django模板…该模板中有以下内容: <select name="region" id="id" onchange="Dajaxice.crc.regions('my_callback',{'data':this.value});"> <option value="" selected="selected" ></option> {% for region in r

我在国际角色中使用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>

{区域%中的区域的%}
{{region.region}
{%endfor%}
正如您在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)
def区域(请求、数据):
CityList=City.objects.filter(region\uu=data)
out=“”.join(['%s'(c.city,c.city)用于城市列表中的c])
返回simplejson.dumps(out)
dajaxice_函数.寄存器(区域)
当区域名称中没有任何国际字符时,它可以正常工作,并使用相关数据调用模板中的my JavaScript函数,没有问题

比如说“安塔利亚”。然而,当“穆奥拉”这样的地区出现时,它就不起作用了。仔细检查,变量数据包含“Mu%u011Fla”,我似乎无法将其恢复到我认为必要的格式,以便Django能够正确访问模型数据

我在页面顶部使用了神奇的引号,我试着用数据来消除它。解码('string-escape')并将它推到utf-8和后面。但我尝试的似乎都不起作用

这是Dajaxice、Django还是python的问题……还是我遗漏了一些非常简单的东西

我已经做了两天了,试图弄明白这一点……非常感谢您能提供的任何帮助

干杯

好的,解决了这个问题

因此,对于其他使用Dajaxice并使用国际字符的用户,您应该将Dajaxice.core.js文件中的第10行更改为以下内容:

send_data.push('argv='+escape(JSON.stringify(argv))

为此:

send_data.push('argv='+encodeURIComponent(JSON.stringify(argv))

一切都很好

呸,两天几小时的生命滑向了黑暗的代码之水。。。 帮助我们所有人

好的,修复了这个

因此,对于其他使用Dajaxice并使用国际字符的用户,您应该将Dajaxice.core.js文件中的第10行更改为以下内容:

send_data.push('argv='+escape(JSON.stringify(argv))

为此:

send_data.push('argv='+encodeURIComponent(JSON.stringify(argv))

一切都很好

呸,两天几小时的生命滑向了黑暗的代码之水。。。
帮助我们所有人

该字符串在数据库中是否正确,并且在获取该字符串以进行渲染时是否会发生更改,或者在数据库中是否以相同的扭曲形式出现?该字符串在数据库中是否正常。我通过一个视图定义将其从数据库中取出…我将其粘贴在上面的select中,然后选择它并调用onchange…它通过一些Dajaxice代码传递给ajax.py中的函数。我不确定这是否是扭曲,因为它离开选择或何时。它无法与数据库匹配并拉取区域城市记录的原因是它的失真。如果我按原样将变量传递给javascript函数并在警报中取消显示它,就可以了。但是我不想这样做,因为我需要它在ajax.py方法中是好的,这样我就可以用它来拉数据库记录…字符串在数据库中是正确的,并且在您获取它进行渲染时会发生变化,还是在数据库中也是以相同的扭曲形式出现?字符串在数据库中是正确的。我通过一个视图定义将其从数据库中取出…我将其粘贴在上面的select中,然后选择它并调用onchange…它通过一些Dajaxice代码传递给ajax.py中的函数。我不确定这是否是扭曲,因为它离开选择或何时。它无法与数据库匹配并拉取区域城市记录的原因是它的失真。如果我按原样将变量传递给javascript函数并在警报中取消显示它,就可以了。但是我不想这样做,因为我需要它在ajax.py方法中是好的,这样我就可以用它提取数据库记录。。。