外键上的 Django 休息框架序列化

Django rest framework serialization on foreign key

我有一个django模型如下:

class A(models.Model):
    comments = models.CharField(max_length=200, blank=True)

class B(models.Model):
    name = models.CharField(max_length=50, blank=True)

class c(models.Model):
    a = models.ForeignKey(A, related_name='modelA')
    b = models.ForeignKey(B, related_name='modelB')

我有如下序列化程序:

class ASerializer(serializers.ModelSerializer):

    class Meta:
        model = A

class CSerializer(serializers.ModelSerializer):

    class Meta:
        model = C

class BSerializer(serializers.ModelSerializer):
    modelB = CSerializer(many=True, read_only=True)

    class Meta:
        model = B

B 序列化器的工作原理如下:

[
    {
        "id": 2,
        "modelB": [
            {
                "id": 1,
                "b": 2,
                "a": 3
            }
        ]
    }
]

我需要调整什么才能使其结果如下:

[
    {
        "id": 2,
        "modelB": [
            {
                "id": 1,
                "b": 2,
                "a": [
                     {
                         "id": 1,
                         "comments": "",
                     }
                 ]
            }
        ]
    }
]

如下更改您的 CSerializer

class CSerializer(serializers.ModelSerializer):
    a = ASerializer()

    class Meta:
        model = C