【发布时间】:2020-08-17 15:39:14
【问题描述】:
我正在使用 DRF 来运行一些 AJAX 后端端点。我有这两个模型:
class Quiz(models.Model):
title = models.CharField(max_length=50)
class Team(models.Model):
name = models.CharField(max_length=50)
quiz = models.ForeignKey('Quiz', on_delete=models.CASCADE, related_name='teams')
然后我使用 DRF 的泛型来创建一个基本的读/写端点:
class TeamList(generics.ListCreateAPIView):
queryset = Team.objects.all()
serializer_class = TeamSerializer
和一个模型序列化器
class TeamSerializer(serializers.ModelSerializer):
class Meta:
model = Team
fields = ['id', 'name', 'quiz']
我可以POST 一些带有测验 ID 的 JSON 来创建团队:
{"quiz": 123, "name": "My Team Name"}
但我希望 GET 版本包含测验标题:
{"quiz": {"id": 123, "title": "My Quiz Title"}, "id": 234, "name": "My Team Name"}
最好的方法是什么?有两个序列化器并覆盖 ListCreateAPIView.list() 方法?
【问题讨论】:
标签: django rest django-rest-framework