是否可以在没有“ look_up”字段的情况下使用“ RetrieveUpdateAPIView”?

hel*_*eer 2 django http django-views django-rest-framework

RetrieveUpdateAPIView的url与特定字段一起使用。(例如。/profile/update/<pk>

我正在从HTTP标头中的令牌获取用户帐户,因此很难将用户的pk包含到URL中。

该视图是我的RetrieveUpdateAPIView。

class ProfileRetrieveAndUpdateProfile(generics.RetrieveUpdateAPIView):
    serializer_class = ProfileRetrieveAndUpdateSerializer
    # lookup_field = 'pk'

    def get_queryset(self):
        qs = Profile.objects.all()
        logged_in_user_profile = qs.filter(user=self.request.user)
        return logged_in_user_profile
Run Code Online (Sandbox Code Playgroud)

我应该只使用views.APIView来实现此功能吗?

hel*_*eer 6

我通过重写get_object解决了这个问题。

def get_object(self):
  queryset = self.get_queryset()
  obj = get_object_or_404(queryset, user=self.request.user)
  return obj
Run Code Online (Sandbox Code Playgroud)

干杯