Django 不带查找字段的RetrieveAppView?
默认情况下,RetrieveAppView或RetrieveUpdateAppiview需要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
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/。。也许这是不可能的?看看这个!我需要在…方面的帮助。。。