Get object by field other than primary key

前端 未结 5 1033
眼角桃花
眼角桃花 2020-12-30 09:52

Hi I\'m new to both Django and the Django-Rest-Framework. I\'ve gone through the tutorials. What I\'m trying to do (as a learning exercise) is return an object based off a f

5条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-30 10:17

    So I figured it out. What was going on was the

    router.register(r'videos', views.VideosViewSet)
    

    Was handling myserver:8000/videos/1 and so my a new url pattern url(r'^videos/(?P.+)/$', views.VideoDetailView.as_view()) was being overridden by the registered route. The code that works is:

    urls.py
    
    url(r'^video/(?P.+)/$', views.VideoDetailView.as_view())
    
    views.py
    
    class VideoDetailView(generics.ListAPIView):
        serializer_class = VideosSerializer
    
        def get_queryset(self):
            videoName = self.kwargs['videoName']
            return Videos.objects.filter(videoName=videoName)
    

    This documentation page on filtering against the URL helped me piece together what was going on.

提交回复
热议问题