我想从我的模型中返回一个特定字段,例如,该字段具有特定的外键。
如果我有一个问题模型,并且我有一个答案模型,而答案有一个问题的外键,我想返回与问题外键对应的答案字段
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 :(得分: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)