Django 不带查找字段的RetrieveAppView?

Django 不带查找字段的RetrieveAppView?,django,django-rest-framework,django-views,Django,Django Rest Framework,Django Views,默认情况下,RetrieveAppView或RetrieveUpdateAppiview需要lookup\u字段来检索模型 但是在我的例子中,我希望通过self.request.user检索我的模型 下面是views.py示例 class ProfileRetrieveAndUpdateProfile(generics.RetrieveUpdateAPIView): queryset = Profile.objects.all() serializer_class = Profi

默认情况下,RetrieveAppView或RetrieveUpdateAppiview需要
lookup\u字段
来检索模型

但是在我的例子中,我希望通过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

我可以使用RetrieveAppView而不使用lookup\u字段吗?

您需要覆盖
获取\u对象

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

您发现
lookup\u字段
是必需的吗?我在文档中找不到它,它在我的项目中工作。此属性在
GenericAPIView
中具有默认值,用于get对象。如果我没有指定
查找\u字段
:预期使用名为“pk”的URL关键字参数调用view ProfilePageView,则会出现此错误。修复您的URL配置,或在视图上正确设置
.lookup\u字段
属性。这意味着您只需使用
pk
something
/profile/213/
是即可访问URL。但我不想添加额外的参数/profile/。。也许这是不可能的?看看这个!我需要在…方面的帮助。。。