我使用的是DRF 2.4.4,並且遇到此問題,其中@list_route
裝飾器需要pk
。這裏是我的代碼摘錄:Django Rest Framework @list_route要求pk
class RunViewSet(ModelViewSet):
serializer_class = RunSerializer
queryset = Run.objects.all()
@list_route()
def active(self, request, pk):
'''Return active runs.'''
qs = Run.objects.all(deleted=False)
serializer = RunSerializer(qs, many=True)
return Response(serializer.data)
如果我嘗試訪問在/api/runs/active
終點,我收到了404 error
。它只適用於如pk
如/api/runs/1/active
。由於@list_route
應該在一個集合上運行,爲什麼我需要給它一個pk
?
接受你的答案,如果它解決。您可能還想描述這個問題。 – argaen 2014-11-07 08:24:07
感謝upvote @djangozone。我現在不能接受我的回答,它告訴我要等到明天。我的問題是,我希望能夠訪問我的列表端點在/ api/runs/active,但它不適用於ExtendedDefaultRouter。我不確定從閱讀我鏈接的故障單後它有什麼問題,但看起來他們仍然在使用已棄用的「@action」裝飾器,並且沒有計劃很快支持「@ linked_route」。 – ybendana 2014-11-07 17:49:46
嗨@ybendana,我遇到了同樣的問題。你能找到一個workaroud嗎? – 2015-01-29 07:03:59