【发布时间】:2021-06-23 14:01:33
【问题描述】:
我正在尝试在 django 模板中接收上下文数据并在 javascript 中使用它。目前我正在接收数据,但作为一个字符串,它看起来很乱。
我的代码:
{% extends "base.html" %}
{% block content %}
{% if search_list %}
<!-- do something -->
{% endif %}
<!-- javascript code -->
{% block script %}
<script >
let data = '{{search_list}}'
console.log(data);
</script>
{% endblock script %}
{% endblock %}
和views.py
from django.shortcuts import render
from .models import search_history
def index(request):
search_list = search_history.objects.order_by('-query_date')[:10]
context = {'search_list': search_list}
return render(request, 'search_history/index.html', context)
如果我在 javascript 中删除变量 search_list 中的引号,则会显示错误。我使用了jsonify 和safe 标签它不起作用。我如何在这里获取数据作为对象?
【问题讨论】:
-
这是一个模板,
{{search_list}}将在生成 html 时进行评估。因此,里面的一切都只能是静态文本/字符串。如果您想要对象 - 以解析 AJAX 请求响应的方式解析它。例如JSON.parse() -
没有
receive有占位符替换。 -
@IvanStarostin 我尝试将数据解析为 JSON,但它不起作用。在上面的代码中,let data = '{{search_list}}' 行在控制台中记录了类似的内容:
&lt;QuerySet [&lt;search_history: whats the meaning of life&gt;, &lt;search_history: how to search -
@IvanStarostin
{{search_list}}没有引号会给出这个错误 -Uncaught SyntaxError: Unexpected token '&' -
添加您的查看代码。
标签: javascript django django-templates