2016-05-20 17 views
0

基本的なゴールに関連する何百もの投稿があります。Django - 関連するモデルと一緒にクエリーセットをシリアライズ

class ModelA(models.Model): 
    # I've got only two fields in reality, 
    # but let's suppose there are 150 of them 

class ModelB(models.Model): 
    # fields 

class ModelC(models.Model): 
    field_c = Integer 
    modelA = models.ForeignKey('ModelB') 
    modelB = models.ForeignKey(ModelC) 

model_c_instance = ModelC.objects.select_related().get(pk=pk) 

私がやりたいすべてのMODELAとModelBためのフィールドが含まれるJSONオブジェクトを思い付くことです:

は、私は単純なモデルを持っています。

  1. Wadofstaff(post)は、Django 1.7以上には適していません。
  2. このpostは、オブジェクトをシリアル化する方法を明らかにしていません。
  3. このpostについては、完全シリアライザについて説明していますが、どのように使用されているかを見るためのコードスニペットはありません。私はRESTフレームワークが必要です

私の最終的なJSONオブジェクトが

[{ 
    "model": "userinfo", 
    "fields": { 
      "field_c ": "9966", 
      "modelA": [{ 
        # modelA fields 
      } 
      etc... 
    }] 

のようになりますか?または完全なシリアライザ?
誰でも、このトピックに対する構造化された回答を提案することができます。私は2週間の解決策を考え出すことができません。

答えて

0

nested relationshipを使用します。 userinfoモデルについては何も表示しないので、この回答には考慮されていません。あなたはこの擬似コードに似た何かをすることができます:

# serializers.py 

from rest_framework import serializers 


class ModelASerializer(serializers.ModelSerializer): 
    class Meta: 
     model = ModelA  


class ModelBSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = ModelB 


class ModelCSerializer(serializers.ModelSerializer): 
    modelA = ModelASerializer(many=True) 
    modelB = ModelBSerializer(many=True) 

    class Meta: 
     model = ModelC 
関連する問題