標準のビューセットがあり、URLは/ api/users /と/ api/users/{pk} /のようになります。私は/ api/users/me /とpk(/ api/users/me/behavは/ api/users/5 /あなたのユーザーIDが5の場合のように動作するので、/ api/users/me/pkによってアクセスされる詳細ビューのように振る舞います。それはTokenAuthenticationと完全に(すべてのHTTPメソッド)SessionAuthenticationではなく、作品Django REST Framework - {pk} URLの静的エイリアス
def dispatch(self, request, *args, **kwargs):
if kwargs.get('pk') == 'me' and request.user:
kwargs['pk'] = request.user.pk
return super(UserViewSet, self).dispatch(request, *args, **kwargs)
をそして:
私はこれを試してみました。 TokenAuthenticationで、それを返します:
curl -H "Authorization: Token f14b876aa54ebb7679330b88ea1c5b5ea4d693e9" http://127.0.0.1:8000/api/users/me/
{"detail":"Not found."}
そして、派遣を()しても実行されないので、先に何かがそれを阻止しなければなりません。他のビュー(/ api/users /など)は正しく動作します。原因は何か、これをデバッグする方法は?