我正在遵循以下建议:Refresh <div> element generated by a django template
我传递了一些变量,一个la:
url: '{% url 'search_results' 'sched_dep_local' flights|escapejs %}',
问题是'flight'是search_results模板需要访问的dicts列表,而且它非常大并且包含像撇号这样的内容
[{'foo': 'bar'}, {'foo': 'baz'}] and so on
因此,我可以使用{%url%}的唯一方法是使用escapejs来摆脱撇号,但是在views.py中,我需要它再次列出一个dicts,所以我可以做的事情如下:
def search_results(request, sort_key, flights):
flights = search_utils.sort(flights, sort_key)
return render_to_response('search_results.html', { 'flights' : flights} )
有一种简单的方法吗?或者,我是否会把这一切都搞错了?
ETA:另见(解释我正在尝试做什么以及为什么):
<script>
$(".sort").on("click", function() {
$.ajax({
url: '{% url 'search_results' 'sched_dep_local' flights|escapejs %}',
success: function(data) {
$('#search-results').html(data);
}
});
});
</script>
我有一个模板(在search_results.html中),可以为航班中的每个航班打印一些数据。我想对数据进行排序并重新呈现模板,但我无法弄清楚如何。
答案 0 :(得分:0)
这不是处理复杂数据的正确方法。您应该使用POST并将其发送到请求正文中,而不是通过URL发送它:因为您正在使用jQuery,所以您可以在该调用中执行method: "POST"
。在后端,您可以从JSON反序列化。
然而,这样做似乎有点奇怪;数据显然已经来自Django后端了,所以不清楚你为什么要把它发回那里。