在没有查找字段的情况下检索APIView?

hel*_*eer 8 django django-views django-rest-framework

默认情况下,RetrieveAPIView或RetrieveUpdateAPIView需要lookup_field检索Model.

但是在我的情况下,我想通过self.request.user检索我的模型.

这是views.py示例

class ProfileRetrieveAndUpdateProfile(generics.RetrieveUpdateAPIView):
    queryset = Profile.objects.all()
    serializer_class = ProfileRetrieveAndUpdateSerializer
    lookup_field = 'user_id'

    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)

我可以在没有lookup_field的情况下使用RetrieveAPIView 吗?

Bea*_*own 11

你需要覆盖 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)

  • 也看看这个!/sf/ask/3252995511/ (2认同)