本文介绍了在没有查找字段的情况下检索APIView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
默认情况下 RetrieveAPIView 或 RetrieveUpdateAPIView 需要 lookup_field
来检索模型.
By default RetrieveAPIView or RetrieveUpdateAPIView requires lookup_field
to retrieve Model.
但是在我的情况下,我想通过 self.request.user 检索我的模型.
However in my case, I want to retrieve my model by self.request.user.
这是 views.py 示例
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
我可以在没有 lookup_field 的情况下使用 RetrieveAPIView 吗?
Can I use RetrieveAPIView without lookup_field?
推荐答案
您需要覆盖 get_object
def get_object(self):
queryset = self.get_queryset()
obj = get_object_or_404(queryset, user=self.request.user)
return obj
这篇关于在没有查找字段的情况下检索APIView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!