RetrieveAPIView without lookup field?

狂风中的少年 提交于 2019-12-08 17:43:27

问题


By default RetrieveAPIView or RetrieveUpdateAPIView requires lookup_field to retrieve Model.

However in my case, I want to retrieve my model by self.request.user.

Here is views.py example

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

Can I use RetrieveAPIView without lookup_field?


回答1:


You need override get_object

def get_object(self):
  queryset = self.get_queryset()
  obj = get_object_or_404(queryset, user=self.request.user)
  return obj


来源:https://stackoverflow.com/questions/46469026/retrieveapiview-without-lookup-field

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!