首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从Django向javascript传递utf-8数据

如何从Django向javascript传递utf-8数据
EN

Stack Overflow用户
提问于 2014-11-03 00:52:53
回答 1查看 2K关注 0票数 4

我在Django中有以下键值对象:

代码语言:javascript
复制
data = {
    "id": 1,
    "question_text": "אנא בחר אחת מהתשובות הבאות",
    "answers": [
     {
        "label" : "תשובה 1",
        "value" : 1,
        "count" : 30
     },
     {
        "label" : "תשובה 2",
        "value" : 2,
        "count" : 30
     },
     {
        "label" : "תשובה 3",
        "value" : 3,
        "count" : 30
     },
}

请注意,有些数据是希伯来语的,因此当我将其保存到我使用的DB中时:

代码语言:javascript
复制
unicode(self.answer_text).encode('utf-8')

当我试图将这个对象发送到视图,以便在Django模板和Javascript中使用它时

我已经使用了这一行:

代码语言:javascript
复制
return render(request, 'reports/report.html', {'data': data })

在我使用的视图中:

代码语言:javascript
复制
var question_data = {{ data }} #in order to get the data object that was sent to the view

但是我得到了这个元素:

代码语言:javascript
复制
{'bad': 45, 'good': 55, 'question_text': u'\u05e2\u05d3 \u05db\u05de\u05d4 \u05d0\u05ea\u05d4 \u05de\u05e8\u05d5\u05e6\u05d4 \u05d0\u05d5 \u05dc\u05d0 \u05de\u05e8\u05d5\u05e6\u05d4 \u05de\u05d1\u05d2\u05d3\u05d9 \u05e2\u05dc\u05d9\u05ea \u05d1\u05d0\u05d5\u05e4\u05df \u05db\u05dc\u05dc\u05d9?', 'id': u'8', 'answers': [{'value': 30, 'label': u'\u05de\u05d0\u05d5\u05d3 \u05de\u05e8\u05d5\u05e6\u05d4'}, {'value': 25, 'label': u'\u05d3\u05d9 \u05de\u05e8\u05d5\u05e6\u05d4'}, {'value': 20, 'label': u'\u05dc\u05d0 \u05db\u05dc \u05db\u05da \u05de\u05e8\u05d5\u05e6\u05d4'}, {'value': 25, 'label': u'\u05db\u05dc\u05dc \u05dc\u05d0 \u05de\u05e8\u05d5\u05e6\u05d4'}]}

控制台中出现以下错误:

代码语言:javascript
复制
SyntaxError: Unexpected token '&'. Expected a property name

我还尝试使用:

代码语言:javascript
复制
var question_data = {{ data|safe }}

我得到了这个错误:

代码语言:javascript
复制
[Error] SyntaxError: Unexpected string literal '\u05e2\u05d3 ...

我使用的是Django 1.7和Python 2.7.6

请试着让我明白我做错了什么

EN

回答 1

Stack Overflow用户

发布于 2018-08-12 06:12:59

对于show JSON fron Views Django,您必须使用filter对数据进行转义:

代码语言:javascript
复制
var categories = JSON.parse("{{ categories|escapejs }}");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26701861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档