Django 如何避开道具的单一报价?

Django 如何避开道具的单一报价?,django,vue.js,django-templates,vuejs2,vue-component,Django,Vue.js,Django Templates,Vuejs2,Vue Component,我有一个Django上下文变量,它是一个jsonified字符串列表,但其中一些字符串可能有一个单引号' import json list_of_strings = ["test", "hello", "I have a'single quote"] return render(request, 'template.html', { 'strings': json.dumps(list_of_strings) }) 然后我通过他的一个道具将它插入到vue组件中,正如您所看到的,它必须用

我有一个Django上下文变量,它是一个jsonified字符串列表,但其中一些字符串可能有一个单引号'

import json
list_of_strings = ["test", "hello", "I have a'single quote"]
return render(request, 'template.html', {
    'strings': json.dumps(list_of_strings)
})
然后我通过他的一个道具将它插入到vue组件中,正如您所看到的,它必须用单引号括起来

:strings='{{strings | safe}
}'

但它崩溃了,只需插入列表直到第一个单引号,然后将所有其他内容作为文本写入浏览器


我怎样才能摆脱它呢?

这很好用。如果数组用作变量,只需
v-bind
变量名即可。如果数组被注入到组件实例化中,则需要将单引号替换为反斜杠单引号

newvue({
el:“#应用程序”,
数据:{
字符串列表:[“test”、“hello”、“我有一个‘单引号’]
},
组成部分:{
显示字符串:{
道具:['strings']
}
}
});

{{s}
{{s}

Roy J的答案是正确的,但如果其他人看不清楚,您需要将json分配给javascript变量,然后将其传递给
v-bind

乙二醇


var list_of_strings={{list_of_strings | safe};

我对vue.js一无所知,但您确定它只能使用单引号吗?当
vue
读取
strings
变量时,您如何期望该变量位于末尾?我不清楚
strings
被注入代码的位置和方式。我想这也是nik_m的问题。组件使用的HTML是什么样子的?好吧,我修复了它,这是Django的问题,我必须使用| escape代替| safe
<script>
var list_of_strings = {{ list_of_strings|safe }};
</script>

<my-component v-bind:strings="list_of_strings"></my-component>