在Django REST Framework中序列化和存储JSON数组

时间:2018-05-05 20:55:08

标签: django django-models django-rest-framework

我正在尝试使用Angular 6和Django Rest Framework为作业应用程序创建一个演示网站。我的一个应用领域涉及将您的兴趣列在芯片输入字段中,如this one

发送到我的API的JSON看起来像这样:

{
    ...
    'firstname': 'Firstname',
    'lastname': 'Lastname'
    ...
    'interests': ['hobby1', 'hobby2', 'hobby3', 'hobby4'],
    ...
}

据我所知,Django REST Framework提供了一个类似这样的序列化器字段:

interests = serializers.ListField(
   item = serializers.CharField(min_value=xx, max_value=xx)
)

我的问题是,如何从这里开始?我使用哪些模型字段,或者我是否必须创建自己的保存功能来迭代兴趣并保存每一个?

1 个答案:

答案 0 :(得分:1)

你要找的东西很多很多。

您甚至可以使用嵌套的序列化程序,因此父对象的输出将包含JSON中的序列化兴趣。

class ParentSerializer(serializers.ModelSerializer):
    child_set = ChildSerializer(many=True)
    class Meta:
        depth = 1
        model = Parent
        fields = ('id', 'other_atributes', 'child_set')

此外,您可以在Django Admin中轻松编辑这些关系,如果您有兴趣,也可以发布该片段。

'interests': ['hobby1', 'hobby2', 'hobby3', 'hobby4']

这基本上是有效的JSON,所以你可以在最后轻松地解析它。