Hi, I'd like to use the parameter of query string as the lookup_field of RetrieveAPIView.
As described, it's possible to specify the captured parameter, $ cat users/urls.py ... url(r'^user/(?P<user_id>.+)/$', views MyUser.as_view()), ... $ cat users/views.py class MyUser(RetrieveAPIView): serializer_class = UserSerializer queryset = User.objects.all() lookup_field = "user_id" $ curl http://localhost:8000/user/10/ 200 However, the following case doesn't work. $ cat users/urls.py ... url(r'^user/$', views MyUser2.as_view()), ... $ cat users/views.py class MyUser2(RetrieveAPIView): serializer_class = UserSerializer queryset = User.objects.all() lookup_field = "email" $ curl http://localhost:8000/user/?email='[email protected]' AssertionError: Expected view MyUser2 to be called with a URL keyword argument named "email". Fix your URL conf, or set the `.lookup_field` attribute on the view correctly. [24/May/2018 16:23:28] "GET /users/ HTTP/1.1" 500 18819 Is there a way to do it? I read "get_object()" in generics.py. It seems to look up from "kwargs". https://github.com/encode/django-rest-framework/blob/cdb8a3c3c86bbb74f17f8880c52000602b015ed4/rest_framework/generics.py#L90-L95 Should I use APIView instead of RetrieveAPIView and implement "get()" method by myself? Or, can I modify "get_object()" to look up from GET query and send PR? Thanks, Teppei -- You received this message because you are subscribed to the Google Groups "Django REST framework" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
