私はJSONの構造を変更することが可能かどうか疑問に思っています。 currenylyそれは次のようになります。シリアライズされたJSONの構造を変更する方法django rest framwork
{
"para_subject": {
"discipline": "MATAN"
},
"para_room": {
"room": "210"
},
"para_professor": {
"user": {
"username": "yyyy",
"email": "[email protected]",
"first_name": "yyyy",
"last_name": "yyy"
},
"middle_name": "xxxxxx"
},
}
これにそれを変更するための最良の方法です:
{
"discipline": "MATAN",
"room": "210",
"para_professor": {
"username": "yyyy",
"email": "[email protected]",
"first_name": "yyyy",
"last_name": "yyy"
"middle_name": "xxxx"
},
}
はUPDATE: はコメントでリクエストに時
オブジェクトをシリアライザとモデルを追加シリアライザ:
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'
)
オブジェクトM odel:
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)
シリアライザと対応するモデルを追加してください。 –
完了。コードの他の部分が私がやっていることに似ている –