[英]How do I send Django object as parameter in Javascript?
正如标题中提到的,我试图将我的 Django 对象发送到 JavaScript,以便我可以在前端对其进行按摩。 让我向您展示代码(简化)。 视图.py
def main_page(request):
contents = Contents.objects.all()
context = {
'contents' : contents
}
return render(request, 'main/home.html', context)
模板
{% for u in all_ans_us_paginated %}
<div class="row">
<div class="col">
<div class="" id="{{u.id}}" onclick="DetailModal('{{u}}')">
</div>
</div>
</div>
{% endfor %}
...
<script>
function DetailModal(u) {
console.log('{{u.author}}');
console.log('{{u.body}}');
}
</script>
我的目的是在触发点击事件时显示一个模态。 但是抛开模态部分,我无法将数据作为参数传递给 JavaScript。
*我不想对python代码进行任何更改。 是否可以仅使用 HTML 和 JavaScript 来实现?
** JSON.parse(u)
不起作用,因为u
是字符串。
在姜戈
from django.shortcuts import render
from json import dumps
def send_dictionary(request):
# create data dictionary
dataDictionary = {
'hello': 'World',
'geeks': 'forgeeks',
'ABC': 123,
456: 'abc',
14000605: 1,
'list': ['geeks', 4, 'geeks'],
'dictionary': {'you': 'can', 'send': 'anything', 3: 1}
}
# dump data
dataJSON = dumps(dataDictionary)
return render(request, 'main / app.js', {'data': dataJSON})
在 Java 脚本中
app.js 文件:
var data = JSON.parse("{{data|escapejs}}");
for(var x in data){
// Write What You Want Here
}
如果您想清楚地查看代码,请使用这种方式,因为 javaScript 将字典视为单独的对象
dataDictionary = [
["Laugh", "Cry"],
["Even", "Odd"],
["Hot", "Cold"],
["Light", "Dark"],
["Opposite", "Same"],
["Far", "Near"],
["Give", "Take"],
["Night", "Day"],
["Import", "Export"],
["Hard", "Easy"],
["Never", "Always"],
["Late", "Early"],
["Less", "More"],
["Male", "Female"],
["Happiness", "Sadness"],
["Fast", "Slow"],
["Old", "Young"],
["Boy", "Girl"],
["Up", "Down"],
["Left", "Right"],
["Rich", "Poor"],
["Love", "Hate"],
["Inside", "Outside"],
["Bad", "Good"],
["Short", "Tall"],
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.