[英]Problem with Django/Dajaxice and international characters
我在使用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和back ..之間,但是我嘗試的任何方法似乎都沒有用。 。
這是Dajaxice,Django還是python問題...還是我在這里錯過了一些非常簡單的東西?
我已經來了兩天,試圖解決這個問題。...在此先感謝您可能提供的任何幫助。
干杯
好,解決這個問題
因此,對於使用Dajaxice並使用國際字符的其他用戶,您應該從以下位置更改Dajaxice.core.js文件中的第10行:
send_data.push('argv ='+ escape(JSON.stringify(argv)));
對此:
send_data.push('argv ='+ encodeURIComponent(JSON.stringify(argv)));
並且一切正常。
ew了兩天零幾個小時,就陷入了代碼模糊的水域…………幫助我們所有人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.