jsonapi标准的Django-Rest框架方法

2024-04-20 09:52:46 发布

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

我对Django Rest框架还很陌生。我在文档中找不到允许我根据JSONAPI标准(jsonapi.org)序列化模型的内容。在

假设我有以下模型。在

class Person(models.Model):
    name = models.CharField(max_length=200)


class Car(models.Model):
    owner = models.ForeignKey(Person)
    brand =  
    model = models.CharField(max_length=200)
    plate = models.CharField(max_length=200)

我想将其序列化,以便它能为我提供以下输出:

^{pr2}$

Tags: django文档模型框架restmodel序列化models
2条回答

解析器和呈现器是允许您更改序列化程序响应的组件。 注意,已经有第三方使用Django REST框架实现了jsonapi:https://github.com/django-json-api/django-rest-framework-json-api

如果你在找东西,别忘了看看Django REST framework third party page。在

您可以创建序列化程序以任何方式返回数据。例如,如果要忽略精确的模型结构,可以执行以下操作

from rest_framework import serializers

class PersonSerializer(serializers.Serializer):
    """
    Person/Car serializer
    """
    id = serializers.IntegerField(read_only=True)
    name = serializers.CharField()
    attributes = serializers.SerializerMethodField()

    def get_attributes(self, obj):
        return {"name": obj.name}

如果需要更接近模型的序列化程序结构,可以使用以下方法关联模型序列化程序:

^{pr2}$

在这两种情况下,都会将queryset传递给包含这些字段的序列化程序(在嵌套模型序列化程序中,传递现有关系)。在

相关问题 更多 >