如何在AJAX调用后更新django模板上下文变量?
我有一个表产品,显示一组产品的信息。
Date Product name Category Amount {% for item in product_list %} {{ item.date }} {{ item.name }} {% if item.category_id %} {{ item.category_id.level1_desc }} {% endif %} ${{ item.amount|intcomma }} {% endfor %}
我正在使用下面的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()