嵌套Serializ中的Django Rest框架自定义URL

2024-05-23 22:53:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在嵌套序列化程序中创建一个自定义URL。 这是我的序列化程序.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')

结果是:

^{pr2}$

但在“演员”中我需要这样的东西:

[
{
    "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"
}
]

我需要这个来发送配置文件来调用,例如:转到“Rami Malek”配置文件,将您的名称作为URL,或者显示它并用您的主键显示URL。在

如果你能帮我,非常感谢。在


Tags: 程序localhosthttpurlby序列化actorsrobot
1条回答
网友
1楼 · 发布于 2024-05-23 22:53:11

创建一个像下面这样的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')

希望它能起作用。在

相关问题 更多 >