xav*_*nel 9 javascript django unicode jquery
我的Django对象有一个属性"City".我正在尝试获取城市列表并使用Jquery在模板中捕获它(在X轴上的图表中使用).
我的问题是我无法摆脱unicode并引用列表.
(我设法为一个单一的价值做).相反,我坚持这样:
["[[u'Paris'],[u'Lyon']]"]
我已经尝试了很多东西,包括JSON.没有成功.
我的观点:( 实际上,其中一个尝试..)
def barchart1(request):
    city_array =[]
    for i in [1,MyObject.objects.count()]:
        objet = get_object_or_404(MyObject, pk=i)
        cities = [objet.city.city_name]
        city_array.append(cities)
return render (request, 'plot3/plot_page.html', {"city_array" : city_array}) 
我的JS:
<script type="text/javascript">
    var cities = ["{{ city_array }}"];
</script>
以下是JS如何读取视图发送的上下文
 
["[[u'Paris'],[u'Lyon']]"]
这就是我想要的
 
['巴黎','里昂']
它必须是简单的东西,但我无法弄清楚如何做到这一点.其他帖子不处理字符串列表.
知道我该怎么办?
sk1*_*k1p 21
当你{{ city_array }}在你的模板,你的列表转换为字符串.这是通过调用repr()列表来完成的,该列表以递归方式调用repr()其内容.因为你的字符串是unicode,你会看到那些unicode文字u'Paris'.
执行此操作的"正确"方法是将数据编码为json,例如在您的视图中:
import json
# ...
json_cities = json.dumps(city_array)
# ...
return render (request, 'plot3/plot_page.html', {"city_array" : json_cities})
然后呢
var cities = {{ city_array|safe }};
在模板中.
请注意:请勿将此用于用户控制器数据!有关详细信息,请参阅OSWASP的XSS备忘单和关于Django ticket 17419的讨论.要防止XSS,您可以使用django-cms项目中的SafeJSONEncoder之类的东西.
| 归档时间: | 
 | 
| 查看次数: | 9727 次 | 
| 最近记录: |