在django模板中使用Ajax来更新元素

时间:2017-06-07 17:50:50

标签: json ajax django templates

所以我有一个按钮,假设“添加”一个“项目”到一个列表并更新同一页面上的列表而不刷新它。

添加项目而不重定向工作。但该元素未正确刷新

这是我的剧本:

<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代码?

1 个答案:

答案 0 :(得分:0)

您应该将请求的结果附加到div元素。试试这个:

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

假设您从data请求收到的GET不是对象,而只是一个字符串。如果是对象,请添加data.name

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

希望它有所帮助。