Django rest框架:删除不带pk

时间:2018-07-01 03:54:06

标签: django django-rest-framework django-views django-rest-viewsets

我使用Django Rest Framwork。我想制作一个api来删除这样的对象

DELETE .../items/

删除request.user的项目。 (每个用户最多只能创建一个项目,只有所有者可以删除他的项目。)

我将mixins.CreateModelMixin,mixins.ListModelMixin,viewets.GenericViewSet用于列表视图和创建。我尝试过

@action(methods=['delete'], detail=False, url_path='')
    def leave(self, request, *args, **kwargs):
     ...

但网址格式会出现:

.../items/leave/$

如何为此配置路由器或路径?谢谢

2 个答案:

答案 0 :(得分:1)

您可以仅使用带有GET方法的简单APIView,然后执行所需的操作。像这样:

button

现在您可以定义所需的网址:

<div class="profile_footer clearfix"> 
     <button type="button" class="btn_default submit_btn" id="confirm">Sure</button>
     <button type="button" class="btn_default edit_btn" onclick="closePopup(this)" data-id="<?=$row->id;?>">Later</button>
</div>

答案 1 :(得分:0)

在 Django rest 框架装饰器中,如果 url_path 为空字符串,则由函数名称替换。所以你不能使用 url_path='' 作为 URL 路径。