默认情况下,RetrieveAPIView或RetrieveUpdateAPIView需要lookup_field
来检索模型。
但是在我的情况下,我想通过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
我可以使用RetrieveAPIView 而不使用lookup_field 吗?
答案 0 :(得分:10)
您需要覆盖get_object
def get_object(self):
queryset = self.get_queryset()
obj = get_object_or_404(queryset, user=self.request.user)
return obj