使用Django Rest Framework序列化2个表

时间:2016-08-11 04:59:54

标签: json django python-2.7 django-rest-framework

我需要将2个表序列化为一个JSON对象,我已经使用过DRF并且知道如何将单个模型序列化为JSON。这些是2个型号 -

class FooOne(models.Model):
      field_a = models.CharField(max_length=255, null=False)
      field_b = models.CharField(max_length=255, null=False)
      field_c = models.CharField(max_length=255, null=False)

class FooTwo(models.Model):
      field_fk = models.ForeignKey(FooOne)
      field_d = models.CharField(max_length=255, null=False)
      field_e = models.CharField(max_length=255, null=False)

我如何实现这一目标。

1 个答案:

答案 0 :(得分:1)

如果你想使用嵌套表示来做。

class FooOneSerializer(serializers.ModelSerializer): 
    class Meta:
        model = FooOne
        fields = (field_a, field_b, field_c)

class FooTwoSerializer(serializers.ModelSerializer): 
    field_fk = FooOneSerializer()
    class Meta:
        model = FooTwo
        fields = (field_fk, field_d, field_e)

如果您只想以非嵌套表示形式返回所有内容

from rest_framework.renderers import JSONRenderer
data = FooOneSerializer(instance=foo_one_instance).data
data.update(FooTwoSerializer(instance=foo_two_instance).data)
json_data = JSONRenderer().render(data)