【问题标题】:Django Serializer - Returning Specific FieldsDjango 序列化器 - 返回特定字段
【发布时间】:2017-12-23 01:55:01
【问题描述】:

我想从我的模型中返回一个特定的字段,例如,一个具有特定外键的字段。

如果我有一个问题模型,我有一个答案模型,并且答案有一个问题的外键,我想返回与问题外键对应的答案字段

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

序列化器.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

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: json django orm django-rest-framework


    【解决方案1】:

    基本上你想返回特定问题的答案。

    因此,在 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)
    

    【讨论】:

      猜你喜欢
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2018-10-13
      • 2018-10-29
      相关资源
      最近更新 更多