如何在AJAX调用后更新django模板上下文变量?

我有一个表产品,显示一组产品的信息。

 {% for item in product_list %}  {% if item.category_id %}  {% endif %}  {% endfor %} 
Date Product name Category Amount
{{ item.date }} {{ item.name }}{{ item.category_id.level1_desc }}${{ item.amount|intcomma }}

我正在使用下面的Ajax调用更新表。

 $(document).ready(function(){ // Submit post on submit $('.item_num').on('click', function(event){ event.preventDefault(); var item_num = $(this).attr('id'); update_item(item_num); }); function update_item(item_num) { console.log(item_num) // sanity check $.ajax({ type: 'GET', url:'update_items', data: { 'item_num': item_num }, success: function(result){ console.log(result); ???$('item_table').product_list = result;??? }, ... more code 

如何使用Ajax调用中的’result’更新变量product_list?

这应该更新表吗?

谢谢

你不能这样。 更好的方法是通过ajax加载你的html部分。

你的ajax视图:

 def update_items(request): product_list = your_data return render(request, 'table_body.html', {'product_list':product_list}) 

你的主要HTML:

  {% include 'table_body.html' %}  

table_body.html:

 {% for item in product_list %}  {{ item.date }} {{ item.name }} {% if item.category_id %} {{ item.category_id.level1_desc }} {% endif %} ${{ item.amount|intcomma }}  {% endfor %} 

你的ajax看起来像这样:

 function update_item(item_num) { console.log(item_num) // sanity check $('.table_body').html('').load( "{% url 'update_items' %}?item_num=" + item_num ); // <--- this code instead of $.ajax(lala) 

你在这里使用这个load()