jquery - 处理 jQuery 中传递给 django 模板的对象列表以进行 Ajax 调用
问题描述
我的views.py函数如下:
def method(request):
objects = Model1.objects.all()
return render(request, 'manager/link.html', {'objects': object})
在我的模板中,link.html 我有以下代码:
<script>
$('#nav').on('click', function (event) {
$('#stock_holdings').text('Loading...');
var stocks = ({{ stocks|get_list|safe }});
$.ajax({
type: "GET",
url: '{% url 'broker:load_data' %}',
data: {
'stocks': stocks,
},
dataType: 'json',
success: function (data) {
$('#stock_holdings').text(data['stocks_details']);
}
});
})
;
</script>
其中 get_list 是将查询集转换为对象列表的自定义标记:
@register.filter
def get_list(queryset):
return list(queryset)
但是,当代码运行时出现以下错误,我在浏览器调试窗口中看到了它:
错误:
Uncaught SyntaxError: Unexpected token '<'
导致错误的行:
var stocks = ([<broker: stock1>, <broker: stock2>]);
看起来对象列表中的“<”导致了错误。有人可以帮忙解决这个问题吗?
解决方案
list(queryset)
只会给你一个模型对象的列表。您可能需要模型的字典表示,这可能有效list(queryset.values())
而且不建议以这种方式呈现 javascript。尝试创建一个返回 json 的视图并进行 ajax 调用来获取它。还将某些 html 标记中所需的 url 呈现为数据属性。
推荐阅读
- typescript - TypeScript generics: how to define type T which is structurally the same as other type S
- python - 具有张量流概率的贝叶斯线性回归
- c# - 如何覆盖 HashSet 的 + 运算符
在c#中 - javascript - WordPress awesomplete 没有在提交时将点击的建议查询字符串添加到 URL 的末尾
- javascript - 如何在上下文中的useEffect挂钩中传递依赖关系
- hadoop - Hadoop webapps - 纱线用户界面
- sql - 根据另一个表更改选择中的列名
- json - 为什么这个模型不符合可解码?(一个多态的 JSON 圣诞故事)
- nginx - Kubernetes NGINX 入口控制器激活 TLSv1.1
- html - 使用媒体查询更改站点宽度