[英]Django Rest Framework filter by PK
I am new to Django Rest Framework and am trying to figure out how to properly filter by PK. 我是Django Rest Framework的新手,正在尝试弄清楚如何通过PK正确过滤。 I tried redefining query set, but it didn't work out.
我尝试重新定义查询集,但没有成功。 I currently have a Video class and have created several Video instances.
我目前有一个Video类,并创建了几个Video实例。 Per Video instance I have a quiz and then quiz questions.
每个视频实例都有一个测验,然后是测验问题。 When I go to list my quiz questions for a certain video quiz all questions that have been made for all quizzes are listed.
当我列出某个视频测验的测验问题时,将列出针对所有测验所做的所有问题。
Example Video/1/Quiz/Questions will list its questions and all of Video/2/Quiz/Questions. 示例Video / 1 / Quiz / Questions将列出其问题以及所有Video / 2 / Quiz / Questions。 I just want Video/1/Quiz/Questions to be listed.
我只想列出视频/ 1 /测验/问题。 Is there a simple way to do this?
有没有简单的方法可以做到这一点?
Views.py: 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
Urls.py: Urls.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'),
Serializer.py 序列化器
class QuizQuestionSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = QuizQuestions
fields = ('url', 'quiz_id', 'question_text', 'answer_one', 'answer_two', 'answer_three', 'answer_four',
'correct_answer')
As I know, DRF don't allow nested routing as you want. 据我所知,DRF不允许您随意嵌套路由。 You will need an extension like that one cited in the docs.
您将需要在文档中引用的扩展名。
Yes, i am agree with @Luiz Django Rest Framework don't allow nested routing. 是的,我同意@Luiz Django Rest Framework不允许嵌套路由。 You need to just change your routing rules and your code is running perfectly.
您只需要更改路由规则,代码就可以完美运行。
Acc. 累积 to me your url.py is .....
对我来说,您的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'),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.