代码之家  ›  专栏  ›  技术社区  ›  Dicky Raambo

Django Make动态删除功能

  •  0
  • Dicky Raambo  · 技术社区  · 6 年前

    我有一个 views.py 像这样归档

    def delete_post(request):
        id = request.GET.get('id')
        post = models.Post.objects.get(id=id)
        return render(request, 'system/ajax/delete.html', {'post': post})
    
    class PostDelete(DeleteView):
        model = models.Post
        success_url = reverse_lazy("system:post_list")
    

    还有我的 urls.py 文件看起来像:

    url(r'^post-list/$',views.PostList.as_view(),name='post_list'),
    url(r'^post-delete/(?P<pk>\d+)/$',views.PostDelete.as_view(),name='post_delete'),
    url(r'^ajax/delete/$',views.delete_data,name='ajax_delete_data'),
    

    我的 delete.html 像这样:

      <form method="post" action="{% url 'delete_post' pk=data.pk %}">
          {% csrf_token %}
    
        <input type="submit" class="btn btn-danger" value="delete">
      </form>
    

    post_list.html 详情如下:

    <button data-id="{{post.id}}" data-url="{% url 'system:ajax_delete_data' %}" type="button" class="delete-post" >
        delete
    </button>
    <script>
    $(document).on('click','.delete-post',function(){ 
        var url = $(this).data('url');
        var id = $(this).data('id');
        $.ajax({
            url:url,
            data:{
                'id':id,
            },
            success:function(data){
                $('#delete-data').html(data);
            },
        });
    });
    </script>
    

    在我的脚本中,它只能删除一个名为 post ,我想让它动态,所以我不需要写很多函数。

    关于这个

    post = models.Post.objects.get(id=id) <---
    

    有什么建议吗?

    0 回复  |  直到 6 年前