我只想使用PUT更新我的\阶段中的所有订单,例如:
“有效载荷”:
{
"stages": [
{
"stage_id": 1,
"position": 2
},
{
"stage_id": 2,
"position": 3
},
{
"stage_id": 3,
"position": 4
}
]
}
以及“回应”:
{
"stages": [
{
"stage_id": 1,
"position": 2
},
{
"stage_id": 2,
"position": 3
},
{
"stage_id": 3,
"position": 4
}
]
}
但是我的模型中没有“阶段”,所以我不能使用ModelSerializer。但我必须先实现create()。 那么我应该如何实现更新呢?非常感谢。你知道吗
我的舞台模型是:
class Stage(models.Model):
class Meta:
db_table = 'stage'
position = models.IntegerField()
这是我的序列器.py你知道吗
class StagePositionSerializer(ModelSerializer):
"""Serialize order"""
# company_id = IntegerField(read_only=True)
stage_id = IntegerField(source='id', read_only=True)
position = IntegerField(min_value=0)
class Meta:
model = Stage
fields = [
'stage_id',
'position'
]
class PositionSerializer(Serializer):
stages = StagePositionSerializer(many=True)
还有我的视图.py你知道吗
class StagePositionListView(APIView):
serializer_class = PositionSerializer
如果只想在数据前面加上
"stages:"
,可以在viewset中创建一个自定义端点,并指定要返回的格式。你知道吗我不知道为什么你有一个模型序列化以及非模型序列化。这给你买了什么?你知道吗
下面是一些示例代码,可以将“get\u stages”添加到api url中。你知道吗
views.py:
然后,如果您在URL
whatever_your_url/is/get_stages
执行GET,您将获得所需的有效负载格式。你知道吗您可以很容易地利用
serializer(many=True)
,它将匹配序列化程序列表。您的序列化程序将是:相关问题 更多 >
编程相关推荐