Python ModelSerializer将名称更改为以“@”符号开头

时间:2017-05-22 11:04:19

标签: python serialization json-ld

Python模型

class Foo(models.Model):
    context = models.CharField()

串行

class FooSerializer(serializers.ModelSerializer):
    class Meta:
        model = Foo
        fields = ("context")

查看

class FooListView(generics.ListCreateAPIView):
    queryset = Foo.objests.all()
    serializer_class = FooSerializer

我的结构如上所述。它会按预期生成以下Json。

{
    "context": "http://json-ld.org/contexts/person.jsonld"
}

是否可以在字段的开头添加“@”符号?

1 个答案:

答案 0 :(得分:1)

只需使用以下代码替换序列化程序:

class FooSerializer(serializers.ModelSerializer):

    class Meta:
        model = Foo
        fields = ("context", )

    def to_representation(self, instance):
        data = super(FooSerializer, self).to_representation(instance)
        data["@context"] = instance.context
        del data["context"]
        return data

:)