其他视图未按预期工作

时间:2013-09-28 10:03:14

标签: django-rest-framework

我在ModelViewSet上添加了一个装饰方法。它不像我期望的那样工作。我可以浏览“/ customers / 1 / add”,但“/ customers / 1 / add / 1”返回404.为什么?

from rest_framework import routers, viewsets
from rest_framework.decorators import action
from app1.models import Customer

class CustomerViewSet(viewsets.ModelViewSet):
    model = Customer

    @action()
    def add(self, request, pk=None):
        queryset = Customer.objects.all()

router = routers.DefaultRouter()
router.register(r'customers', CustomerViewSet)

1 个答案:

答案 0 :(得分:0)

当您使用@action@link装饰器时,您可以为基本路由添加额外的网址as stated in the docs

在文档的最后,它提到可以在resource/:id/method/访问视图:

  

这两个新动作将在网址^ users / {pk} / set_password / $和^ users / {pk} / unset_password / $

中提供      

- Django Request Frameworks docs

这是hardcoded into the router