2

手頭的任務是使用序列化器對可以說是整數或字符串的基本類型列表進行序列化,然後再次反序列化該列表。這應該很容易,但不知怎的,我不能讓它工作。我設法序列化一個簡單的模型,它看起來像這樣:Django REST框架 - 對原始類型列表進行序列化和反序列化

{'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嗎?

謝謝...

回答

2

如果你只需要系列化然後只需使用普通的Field將被罰款。

如果您還需要反序列化,那麼編寫自定義字段類型可能是最好的選擇,因爲其餘框架還沒有泛型列表或字典容器字段。

相關問題