【发布时间】:2020-07-20 12:55:54
【问题描述】:
我成功地获得了第 1 部分的输入和第 1 部分的输出,并且文档也可用于此类问题 单数组 第 1 部分输入
{
"someid:"1"
"lecture_id": 1,
"subject_name": "English",
"teacher_id": 1,
"teacher_name": "Cirillo Kierans",
"room": "Room A",
"schedule": "1534567899"
}
第 1 部分 输出张贴-->
{
"id:1,
"someid" :1
"lecture_id": 1,
"subject_name": "English",
"teacher_id": 1,
"teacher_name": "Cirillo Kierans",
"room": "Room A",
"schedule": "1534567899",
}
但我的数据不像上面的格式,我需要得到不像上面第 1 部分那样的回复,我期待这个多记录(列表)第 2 部分输入和第 2 部分输出
第 2 部分输入
{ "someid:"1" "lectures": [{ "lecture_id": 1, "subject_name": "English", "teacher_id": 1, "teacher_name": "Cirillo Kierans", "room": "Room A", "schedule": "1534567899" }] }第 2 部分 输出
{ "lectures": [{ "id:1, "lecture_id": 1, "subject_name": "English", "teacher_id": 1, "teacher_name": "Cirillo Kierans", "room": "Room A", "schedule": "1534567899", "someid" :1 }] }
我已经通过覆盖def list这个函数成功获取了数据列表 序列化器-->
class LecturesSerializer(serializers.ModelSerializer):
schedule_timestamp=serializers.IntegerField()
class Meta:
model=Lectures
fields = ('id','lecture_id','schedule_timestamp','subject_name','teacher_id','teacher_name','room')
def validate(self, attrs):
travel_date = Lectures.to_date_time(attrs.pop('schedule_timestamp'))
attrs.update({'schedule_date': travel_date})
attrs = super().validate(attrs)
return attrs
def to_representation(self, instance):
data = super(LecturesSerializer, self).to_representation(instance)
result_data={}
result_data["lectures"]=data
return result_data
视图-->
class LecturesViewSet(viewsets.ModelViewSet):
queryset = Lectures.objects.all()
def get_serializer_class(self):
return LecturesSerializer
def dispatch(self, request, *args, **kwargs):
response = super(LecturesViewSet, self).dispatch(request, *args, **kwargs)
data = {}
data['lectures'] = response.data
response.data = data
return response
它按预期提供列表,但发布和更新对我不起作用,如何定义发布方法并为上面描述的 POST 和 PUT 获取自定义数组对象响应 在此先感谢您的帮助
【问题讨论】:
-
请说明显示的示例中的哪一个是预期输出。
some_id是什么 - 这是另一个模型的 FK 吗? -
第二部分输入和第二部分输出,some_id FK
标签: arrays json django python-3.x django-rest-framework