17 django 删除产品


1 后台

  • view
#删除
class DeleteProject(View):
    @login_check
    def post(self, request):
        print(request.body)
        body = json.loads(request.body)
        id = body['proj_id']
        proj = Project.objects.filter(id=id)
        print('删除产品:')
        print(proj)
        if proj is not None:
            # 引入model,对数据库进行操作
            Project.objects.filter(id=id).delete()
            result = {'code': 1, 'msg': u'删除产品成功!'}
            return JsonResponse(result,
                                json_dumps_params={'ensure_ascii': False})
        else:
            result = {'code': -1, 'msg': '被删除产品不存在!'}
            return JsonResponse(result,
                                json_dumps_params={'ensure_ascii': False})
  • urls
urlpatterns = [
    path('add', AddProject.as_view(), name='add'),
    path('list', ProjectList.as_view(), name='list'),
    path('search', SearchProject.as_view(), name='search'),
    path('filter', FilterProject.as_view(), name='filter'),
    path('delete', DeleteProject.as_view(), name='delete'),

]

2 前台

  • 请求
// 删除产品
export const project_delete = (id) => {
    return fetch(baseurl + '/v1/project/delete', {
        method: 'POST',
        body: JSON.stringify({'proj_id':id}),
        headers: new Headers({'Content-Type': 'application/json',
            'authorization': localStorage.getItem('token')}),
    }).then(response => {
        return response.json()
    })
}
  • 点击删除按钮
     // 删除操作
      handleDelete(index, row) {
        // 二次确认删除
        this.$confirm("确定要删除吗?", "提示", {
          type: "warning"
        })
            .then(() => {
              project_delete(row.id).then(res => {
                if (res.code === 1) {
                  console.log(res)
                  this.$message.success("删除成功");
                  this.tableData.splice(index, 1);  // splice() 方法可删除从 index 处开始的零个或多个元素
                  this.getData()
                } else {
                  this.$message.success(`删除失败`);
                }
              })
            })  //
            .catch(() => {});
      },

注:点击OK按钮,调用then方法指定的内容;点击cancel按钮,调用catch方法指定的内容;如果then中的方法在运行过程中抛出错误,也会被catch方法捕获。

相关