Django - 序列化查询集以及相关模型

时间:2016-05-20 10:37:34

标签: json django serialization

有数百个与基本目标相关的帖子。

我有一个简单的模型:

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)

我想要做的就是想出一个JSON对象,其中包括ModelA和ModelB的字段。

  1. Wadofstaff(post)不适合Django 1.7及更高版本。
  2. 这个post没有说明我应该如何序列化对象。
  3. 这个post讲述了Full Serializers,但是没有代码片段可以看看它是如何使用的。
  4. 我的最终JSON对象应该看起来像

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

    我需要REST框架吗?或完整的序列化器?
    请任何人都可以建议这个主题的结构化答案。我连两个星期都找不到解决方案。

1 个答案:

答案 0 :(得分: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
相关问题