2017-06-07 49 views
0

所以我有一個按鈕,它假設將一個「Item」添加到列表中,並更新同一頁面上的列表而不刷新它。在django模板中使用Ajax來更新元素

在沒有重定向的情況下添加項目。但該元素不正確刷新

這裏是我的腳本:

<div id="list"> 
    {% for item in items %} 
     {{ item.name }} 
    {% endfor %} 
</div> 

<button id="add" type="submit">+</button> 

<script> 
    $('#add').click(function() { 
     $.get('/url/page/', function (data) { 
      $('#list').html(data); 
     }); 
    }); 
</script> 

views.py

def add_to_list(request, item_id, list_id): 
     item, created = List.objects.get_or_create(list_id=list_id, 
     item_id=item_id) 
    return HttpResponse(request) 

我覺得我必須在視圖中添加的東西?並可能使用json代碼?

+0

我們能否看到您的模板? –

+0

當然,我剛纔添加了完整的代碼。 – DjangoGuy

回答

0

您應該將請求的結果附加到div元素。試試這個:

$('#add').click(function() { 
    $.get('/url/page/', function (data) { 
     $('#list').append(data); 
    }); 
}); 

假設你從GET請求接收data不是對象,但只是一個字符串。如果它是一個對象添加data.name

$('#list').append(data.name) 

希望它有幫助。

+0

我在這個問題上犯了一個錯誤。但這是我行之有效的方式。但沒有工作 – DjangoGuy

+0

@DjangoGuy你可以'console.log(data)'讓我知道結果? –

+0

我在哪裏輸入這個命令? – DjangoGuy