我正在尝试在嵌套的序列化程序中创建自定义URL。这是我的serializer.py->
class SerieSerializer(serializers.HyperlinkedModelSerializer):
created_by = serializers.ReadOnlyField(source='created_by.username')
picture = serializers.ImageField()
class Meta:
model = Serie
fields = ('url', 'name', 'genre', 'director', 'release', 'seasons', 'review', 'picture', 'actors', 'created_by')
结果如下:
[
{
"url": "http://localhost:8000/series/1/",
"name": "Mr. Robot",
"genre": "DRAMA",
"director": "Sam Esmail",
"release": "2015-06-24",
"seasons": 2,
"review": "Mr. Robot es una serie de televisión estadounidense creada por Sam Esmail. Se estrenó el 24 de junio de 2015 en la cadena USA Network. El mismo día la serie se renovó para una segunda temporada, estrenada el 13 de julio de 2016. El 16 de agosto del mismo año Mr. Robot fue renovado para una tercera temporada a estrenarse en 2017.",
"picture": "http://res.cloudinary.com/dqohbm9y4/image/upload/v1487190362/uasfb8maqzh9urp4bvrd.png",
"actors": [
"http://localhost:8000/actors/3/",
"http://localhost:8000/actors/4/"
],
"created_by": "mosthated"
}
]
但是我在“演员”中需要这样的东西:
[
{
"url": "http://localhost:8000/series/1/",
"name": "Mr. Robot",
"genre": "DRAMA",
"director": "Sam Esmail",
"release": "2015-06-24",
"seasons": 2,
"review": "Mr. Robot es una serie de televisión estadounidense creada por Sam Esmail. Se estrenó el 24 de junio de 2015 en la cadena USA Network. El mismo día la serie se renovó para una segunda temporada, estrenada el 13 de julio de 2016. El 16 de agosto del mismo año Mr. Robot fue renovado para una tercera temporada a estrenarse en 2017.",
"picture": "http://res.cloudinary.com/dqohbm9y4/image/upload/v1487190362/uasfb8maqzh9urp4bvrd.png",
"actors": [
"Rami Malek": "http://localhost:8000/actors/3/",
"Christian Slater": "http://localhost:8000/actors/4/"
],
"created_by": "mosthated"
}
]
我需要使用它来发送配置文件以进行呼叫,例如:转到以您的名字作为URL的“ Rami Malek”配置文件,或者显示它并使用主键显示URL。
如果可以帮助我,非常感谢。
如下所示创建customActorSerializer并将其与SerieSerializer链接。
class ActorSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Actor
fields = ('url','actor_name')
class SerieSerializer(serializers.HyperlinkedModelSerializer):
created_by = serializers.ReadOnlyField(source='created_by.username')
picture = serializers.ImageField()
actors = ActorSerializer(many=True)
class Meta:
model = Serie
fields = ('url', 'name', 'genre', 'director', 'release', 'seasons', 'review', 'picture', 'actors', 'created_by')
希望它能工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句