嵌套序列化程序中的Django Rest Framework自定义URL

米格尔·托莱达诺(Miguel Toledano)

我正在尝试在嵌套的序列化程序中创建自定义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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Django Rest Framework 在序列化程序中自定义响应

Django Rest Framework序列化程序中的自定义错误消息

如何在Django Rest Framework序列化程序中自定义字段

Django Rest-Framework嵌套序列化程序顺序

Django Rest Framework嵌套的序列化程序部分更新

Django Rest Framework更新嵌套序列化程序

Django Rest Framework 序列化自定义字段

Django REST Framework:嵌套序列化程序未序列化

Django REST Framework序列化程序中的嵌套注释字段

尝试在 Django REST Framework 中创建嵌套序列化程序时出现 AttributeError

嵌套关系序列化程序中的Django Rest Framework模型ID字段

django-rest-framework 3.0在嵌套序列化程序中创建或更新

在Django Rest Framework 3中使用可写的嵌套序列化程序创建多个对象

嵌套序列化程序中的Django Rest Framework关系查询

Django Rest Framework中的嵌套序列化程序“通过模型”

如何在Django Rest Framework中设置双嵌套序列化程序

更新 Django Rest Framework 中兩個嵌套序列化程序的創建方法

序列化中的嵌套字段在Django REST框架中使用自定义字段

一个如何自定义Django Rest Framework序列化程序输出?

Django REST Framework - 自定义序列化程序覆盖模型约束

自定义来自Django Rest Framework序列化程序的状态代码响应

Django REST序列化程序和自定义模型字段中的其他属性

Django Rest Framework序列化程序中的循环依赖

Django REST框架序列化程序中的完整URL

Django Rest Framework在POST中接收主键值,并以嵌套序列化程序的形式返回模型对象

Django Rest Framework-嵌套序列化不嵌套

Django Rest Framework 的自定義序列化程序

如何在 Django REST 框架中的自定义序列化程序字段中访问请求对象?

在 Django Rest Framework 中保存实例嵌套序列化程序