2017-11-01 7 views
0

以下に同等の問題を解決しています。私は、次の基準を持っているDjangoのモデルをシリアライズする必要があります。「タイプ」私は商品の種類を格納することができますフィールド(すなわち、果物、衣類...) さまざまな派生クラスのDjangoおよびREST APIシリアライザ

  • を含むジャンゴモデルから

    • ベース(抽象)クラス

    REST APIフレームワークの商品リストをシリアル化(JSON形式)したいと思います。私はあなたがモデルに基づいて2つ以上のシリアライザを結合しますシリアライザを定義することができるなど、シリアライズされたオブジェクトの検証の枠組みの機能を使用するためにそれを最大限に活用する方法を

  • 答えて

    0

    を知らない:

    class Model1Serializer(serializers.Serializer): 
        ... 
    
    class Model2Serializer(serializers.Serializer): 
        ... 
    
    class SummarySerializer(serializers.Serializer): 
        """ Serializer that renders each instance with its own specific serializer """ 
    
        @classmethod 
        def get_serializer(cls, model): 
         if model == Model1: 
          return Model1Serializer 
         elif model == Model2: 
          return Model2Serializer 
    
        def to_representation(self, instance): 
         serializer = self.get_serializer(instance.__class__) 
         return serializer(instance, context=self.context).data 
    

    これは動作しますどのモデルでも、1つのクラスの子供だけでなく、 元の回答はhere、zymudが1月19日14:52に回答しました。

    関連する問題