【发布时间】:2018-04-25 19:16:48
【问题描述】:
我有一个模型:
class Scenario(models.Model):
tasks = models.ManyToManyField(Task, blank=True)
它的序列化器:
class ScenarioSerializer(serializers.ModelSerializer):
class Meta:
model = Scenario
fields = '__all__'
还有一个检索和发布场景的视图:
@api_view(['GET', 'POST'])
def scenarios_list(request):
scenarios = []
"""
List all scenarios, or create a new.
"""
if request.method == 'GET':
# get projects of a specific stakeholder
if request.query_params.get('stakeholderId'):
stakeholderId = request.query_params.get('stakeholderId')
scenarios = Scenario.objects.filter(stakeholder=stakeholderId)
serializer = ScenarioSerializer(scenarios, many=True)
return Response(serializer.data)
else:
scenarios = Scenario.objects.all()
serializer = ScenarioSerializer(scenarios, many=True)
return Response(serializer.data)
elif request.method == 'POST':
serializer = ScenarioSerializer(data=request.data)
if serializer.is_valid():
serializer.save(stakeholder=request.user)
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(
serializer.errors, status=status.HTTP_400_BAD_REQUEST)
这给了我如下数据:
[{"id":1,"tasks":[1,3]},{"id":2,"tasks":[2,4,5,10]},{"id":3,"tasks":[2,5,6]},{"id":4,"tasks":[2,6,10]}]
我想接收任务对象而不是它们的 ID。我怎样才能做到这一点?
【问题讨论】:
-
序列化器的想法不是只返回对象的
id吗? -
我不确定,但我想不一定
-
它只是发生在我身上(阅读下面的第一个答案):您是否希望将
Task对象表示为带有字段的序列化数据?我理解你的问题是指Task对象,就像在 Python 类实例中一样。 -
@Ralf 好点。我以为它的意思是
JSON对象,但可以选择任何一种方式
标签: django django-rest-framework