Python django restframework显示格式
我有一个端点,它给出如下响应:Python django restframework显示格式,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有一个端点,它给出如下响应: { "theatershowtime" : [ { "movietime" : "2014-11-23T02:40:00Z", "mvtype" : "3D" }, { "movietime" : "2014-11-23T05:40:00Z", "mvtype" : "3D"
{
"theatershowtime" : [
{
"movietime" : "2014-11-23T02:40:00Z",
"mvtype" : "3D"
},
{
"movietime" : "2014-11-23T05:40:00Z",
"mvtype" : "3D"
},
{
"movietime" : "2014-11-23T03:40:00Z",
"mvtype" : "IMAX"
},
]
}
这是my serializes.py:
class TheaterSerializer(serializers.ModelSerializer):
theatershowtime = MovieShowtimeSerializer(many=True, read_only=True, source='theater')
class Meta:
model = MovieTheater
fields = ('theatershowtime', )
class MovieShowtimeSerializer(serializers.ModelSerializer):
class Meta:
model = MovieShowtime
fields = ( 'movietime', 'mvtype', )
我学习了一种方法,如何像这样表现:
"Times": [
"2014-11-23T02:40:00Z",
"2014-11-23T05:40:00Z",
"2014-11-23T03:40:00Z",
]
使用此serializes.py是非常有用的:
class TheaterSerializer(serializers.ModelSerializer):
Times = serializers.SerializerMethodField('get_movietimes')
def get_movietimes(self, obj):
movietimes = []
for i in obj.theater.all():
movietimes.append(i.movietime)
return movietimes
class Meta:
model = MovieTheater
fields = ('Times', )
但我希望得到这样的回应:
theatershowtime: {
Times: {
3D: [
"2014-11-23T02:40:00Z",
"2014-11-23T05:40:00Z",
],
IMAX: [
"2014-11-23T03:40:00Z",
]
}
},
请帮帮我!非常感谢 尝试使用此代码段:
...
def get_movietimes(self, obj):
movietimes = {}
for i in obj.theater.all():
if i.mvtype not in movietimes:
movietimes[i.mvtype] = []
movietimes[i.mvtype].append(i.movietime)
return movietimes
...