【问题标题】:Django REST framework - Serializing and Deserializing a list of primitive typesDjango REST framework - 序列化和反序列化原始类型列表
【发布时间】:2013-06-22 23:03:07
【问题描述】:

手头的任务是使用序列化器来序列化一个原始类型列表,比如整数或字符串,然后再次反序列化这个列表。这应该很容易,但不知何故我不能让它发挥作用。我设法序列化了一个简单的模型,它看起来像这样:

{'title': u'Something', 'description': u'sldfj', 'price': Decimal('78.56'), 'numbers': [3, 2, 1]}

...所以我必须重建数字列表吗?我的序列化器如下所示:

class OfferSerializer(serializers.Serializer):
    title = serializers.CharField()
    description = serializers.CharField(required=False)
    price = serializers.DecimalField()
    numbers = serializers.IntegerField(required=False)

    def restore_object(self, attrs, instance=None):
        if instance:
            for key, val in attrs.items():
                setattr(instance, key, val)
            return instance

        return Offer(**attrs)

使用 mongoengine 可以简单地说 ListField(IntField()),一切都很好。我必须编写自己的 ListSerializer 吗?

谢谢...

【问题讨论】:

    标签: python serialization deserialization django-rest-framework


    【解决方案1】:

    如果您只需要序列化,那么只需使用常规的Field 就可以了。

    如果您还需要反序列化,那么编写自定义字段类型可能是最好的选择,因为 REST 框架还没有通用列表或字典容器字段。

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2014-04-13
      • 1970-01-01
      相关资源
      最近更新 更多