簡體   English   中英

Django / Dajaxice和國際字符問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM