2017-12-23 18 views
0

私のモデルから特定のフィールド、たとえば特定の外部キーを持つフィールドを返したいとします。Djangoシリアライザ - 特定のフィールドを返す

私は質問のモデルを持っている、と私は答えモデルを持っている、と回答質問への外部キーを持っている場合、私は(問外部キー

views.pyに対応して回答フィールドを返すようにしたいです今、それがすべてで)

class FindAnswer(APIView): 

    def get(self, request): 
     answer = Answer.objects.all() 
     serializer = AnswerSerializer(answer, many=True) 
     return Response(serializer.data) 

    def post(self): 
     pass 

serializers.py

from rest_framework import serializers 
from .models import * 

class AnswerSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = Answer 
     fields = '__all__' 

models.py

を返します。
class Question(models.Model): 
    question_text = models.CharField(max_length=256) 
    exam = models.ForeignKey(Exam) 

    def __str__(self): 
     return self.question_text 


class Answer(models.Model): 
    text = models.CharField(max_length=128) 
    question = models.ForeignKey(Question) 

    def __str__(self): 
     return self.text 

これを達成する最も良い方法は何ですか?

答えて

0

あなたは、特定の質問に対する答えを返したいと思っています。

したがって、findAnswerではgetの質問のID番号を渡し、それに応じて回答をフィルタリングする必要があります。しかし私の答えはここであなたは0以上の答えを持つことができると仮定します。

def get(self, request, pk): 
    answer = Answer.objects.filter(question__id=pk) 
    serializer = AnswerSerilizer(answer, many=True) 
    return Response(serilizer.data) 
関連する問題