本文介绍了RetrieveAPIView没有查找字段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
默认情况下,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
我可以使用RetrieveAPIView 而没有lookup_field 吗?
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
这篇关于RetrieveAPIView没有查找字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!