ここを見ている:ルータ `detail_route`にルックアップフィールドが必要ですか?
@detail_route(methods=['post'], permission_classes=[IsAdminOrIsSelf])
def set_password(self, request, pk=None):
と、次のURLパターンが生成されます。こう述べています:http://www.django-rest-framework.org/api-guide/routers/#extra-link-and-actions例はpk=None
を持って^users/{pk}/set_password/$
こっち:http://www.django-rest-framework.org/api-guide/routers/#simplerouterまたlookup
フィールドは、URLであることを言う:{prefix}/{lookup}/{methodname}/
lookup
値をDRFがdetail_route
メソッドに渡しますか?あなたは下にスクロールした場合http://www.django-rest-framework.org/api-guide/routers/#example
:ドキュメントに基づいて、それはこっちそれがないように見えますが、
@detail_route()
def group_names(self, request):
"""
Returns a list of all the group names that the given
user belongs to.
"""
user = self.get_object()
groups = user.groups.all()
return Response([group.name for group in groups])
ルックアップ値はgroup_names
関数の引数としてを求めていません。私の質問は:
1)detail_route
にpk
/ルックアップフィールド引数が必要ですか?
2)そうでない場合、self.get_object()
はどのようなオブジェクトを取得するのですか?
3)また、そうでない場合は、参照が使用されていないので代わりに@list_route
を使用しないでください。
編集:ここではオーバー:http://www.django-rest-framework.org/api-guide/viewsets/#marking-extra-actions-for-routingまたThe @detail_route decorator contains pk in its URL pattern and is intended for methods which require a single instance.