【发布时间】:2016-11-03 16:08:27
【问题描述】:
我想知道是否可以更改我的 JSON 结构。 现在看起来像这样:
{
"para_subject": {
"discipline": "MATAN"
},
"para_room": {
"room": "210"
},
"para_professor": {
"user": {
"username": "yyyy",
"email": "yyyy.yyyy@gmail.com",
"first_name": "yyyy",
"last_name": "yyy"
},
"middle_name": "xxxxxx"
},
}
什么是最好的方法来改变它:
{
"discipline": "MATAN",
"room": "210",
"para_professor": {
"username": "yyyy",
"email": "yyyy.yyyy@gmail.com",
"first_name": "yyyy",
"last_name": "yyy"
"middle_name": "xxxx"
},
}
更新: 在 cmets 中为请求添加序列化程序和模型
对象序列化器:
class ParaSerializer(serializers.ModelSerializer):
para_subject = DisciplineSerializer()
para_room = RoomSerializer()
para_professor = ProfessorProfileForScheduleSerializer(read_only=True)
para_number = ParaTimeSerializer()
para_day = WorkingDaySerializer()
# para_group = StudentGroupSerializer()
class Meta:
model = Para
fields = (
'para_subject',
'para_room',
'para_professor',
'para_number',
'para_day',
'para_group',
'week_type'
)
对象模型:
class Para(models.Model):
class Meta(object):
verbose_name = u"Class"
verbose_name_plural = u"Classes"
para_subject = models.ForeignKey(
'Disciplines',
blank=True,
null=True,
verbose_name=u"Discipline"
)
para_room = models.ForeignKey(
'Rooms',
blank=True,
null=True,
verbose_name=u"Room"
)
para_professor = models.ForeignKey(
'students.ProfileModel',
blank=True,
null=True,
verbose_name=u"Professor"
)
para_number = models.ForeignKey(
'ParaTime',
blank=True,
null=True,
verbose_name=u"Class Starts/Ends"
)
para_day = models.ForeignKey(
WorkingDay,
blank=True,
null=True,
verbose_name=u"Working day")
para_group = models.ForeignKey(
'StudentGroupModel',
blank=True,
null=True,
verbose_name=u"Student Group"
)
week_type = models.BooleanField(
default=True,
verbose_name=u"Is week even"
)
def __unicode__(self):
return u"%s %s" % (self.para_subject, self.para_room)
【问题讨论】:
-
请添加您的序列化器和对应的型号。
-
完成。让我知道是否需要其他代码部分
标签: python json django serialization django-rest-framework