Python Django Rest框架按PK筛选

Python Django Rest框架按PK筛选,python,django,django-rest-framework,Python,Django,Django Rest Framework,我是Django Rest框架的新手,正在尝试找出如何通过PK正确过滤。我尝试重新定义查询集,但没有成功。我目前有一个视频类,并创建了几个视频实例。每个视频实例我都有一个小测验,然后是小测验问题。当我列出某个视频测验的测验问题时,会列出所有测验的所有问题 示例视频/1/测验/问题将列出其问题和所有视频/2/测验/问题。我只想列出视频/1/测验/问题。有没有一个简单的方法可以做到这一点 Views.py: # questions class QuizQuestionsList(generics.L

我是Django Rest框架的新手,正在尝试找出如何通过PK正确过滤。我尝试重新定义查询集,但没有成功。我目前有一个视频类,并创建了几个视频实例。每个视频实例我都有一个小测验,然后是小测验问题。当我列出某个视频测验的测验问题时,会列出所有测验的所有问题

示例视频/1/测验/问题将列出其问题和所有视频/2/测验/问题。我只想列出视频/1/测验/问题。有没有一个简单的方法可以做到这一点

Views.py:

# questions
class QuizQuestionsList(generics.ListCreateAPIView):
    queryset = QuizQuestions.objects.all()
    serializer_class = QuizQuestionSerializer


class QuizQuestionsDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = QuizQuestions.objects.all()
    serializer_class = QuizQuestionSerializer
URL.py:

url(r'^video/(?P<pk>[0-9]+)/quiz/questions/list',
    views.QuizQuestionsList.as_view(),
    name='quizquestions-list'),
url(r'^video/(?P<pk>[0-9]+)/quiz/questions/detail$',
    views.QuizQuestionsDetail.as_view(),
    name='quizquestions-detail'),

正如我所知,DRF不允许您想要的嵌套路由。 你需要一个像文档中引用的那样的扩展


是的,我同意@Luiz Django Rest Framework不允许嵌套路由。您只需更改路由规则,代码就可以完美运行

根据我的说法,你的url.py是

url(r'^video/quiz/questions/list/(?P<pk>[0-9]+)',
    views.QuizQuestionsList.as_view(),
    name='quizquestions-list'),

url(r'^video/quiz/questions/detail/(?P<pk>[0-9]+)',
    views.QuizQuestionsDetail.as_view(),
    name='quizquestions-detail'),
url(r'^video/quick/questions/list/(?P[0-9]+),
views.QuizQuestionsList.as_view(),
name='quizquestions-list'),
url(r“^video/quick/questions/detail/(?P[0-9]+)”,
views.quizquestionsdeail.as_view(),
name='quizquestions-detail'),
url(r'^video/quiz/questions/list/(?P<pk>[0-9]+)',
    views.QuizQuestionsList.as_view(),
    name='quizquestions-list'),

url(r'^video/quiz/questions/detail/(?P<pk>[0-9]+)',
    views.QuizQuestionsDetail.as_view(),
    name='quizquestions-detail'),