2016-04-04 14 views
0

私はDjango Rest Frameworkを初めて使用しています.PKで正しくフィルタリングする方法を理解しようとしています。私はクエリセットを再定義しようとしましたが、うまくいきませんでした。私は現在Videoクラスを持ち、複数のVideoインスタンスを作成しています。ビデオごとのインスタンス私はクイズを持っていて、次にクイズの質問をします。特定のビデオクイズのクイズの質問をリストに表示すると、すべてのクイズについて行われたすべての質問がリストされます。Django Rest Framework filter by 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 

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') 

答えて

0

私が知っているように、DRFは、ネストされたルーティングを許可していません。 。 ドキュメントに引用されているような拡張子が必要です。

DRF Routers Doc

0

はい、私は、ネストされたルーティングを許可していません@Luiz Djangoの残りの枠組みに同意しています。ルーティングルールを変更するだけで、コードが完全に実行されている必要があります。

Acc。あなたの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'), 
です
関連する問題