Django:如何序列化一对多关系

Django:如何序列化一对多关系,django,django-rest-framework,django-views,django-serializer,Django,Django Rest Framework,Django Views,Django Serializer,我似乎不知道如何在Django中序列化一对多关系,这些信息似乎都没有出现 我的模型 class DataInfo(models.Model): component_id = models.CharField(max_length=4) component_name = models.CharField(max_length=255) data_id = models.IntegerField() data_name = models.CharField(max_l

我似乎不知道如何在Django中序列化一对多关系,这些信息似乎都没有出现

我的模型

class DataInfo(models.Model):
    component_id = models.CharField(max_length=4)
    component_name = models.CharField(max_length=255)
    data_id = models.IntegerField()
    data_name = models.CharField(max_length=255)


class Data(models.Model):
    owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name='data_owner')
    subject = models.CharField(max_length=255)
    init_date = models.DateField()
    fin_date = models.DateField()
    data_info = models.ForeignKey(DataInfo, related_name="datainfo", on_delete=models.CASCADE)
我的看法

class DataViewSet(viewsets.ModelViewSet):
    serializer_class = serializers.DataSerializer

    def list(self, request):
        data = models.Data.objects.using(db_to_use).select_related('data_info').all()
        return Response(self.get_serializer(data, many=True).data)
我的序列化程序

class DataInfoSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.DataInfo
        fields = ('id', 'component_id', 'component_name', 'data_id', 'data_name')

class DataSerializer(serializers.ModelSerializer):
    datainfo = DataInfoSerializer(source="datainfo", read_only=True)
    class Meta:
        model = models.Data
        fields = ('id', 'subject', 'init_date', 'fin_date', 'owner_id', 'data_info_id', 'datainfo')

我实际上只是尝试在数据和数据信息之间进行连接,在一个视图中显示数据和数据信息的所有字段(不是嵌套的)。我试着做了一个与select_相关的操作,放置了一个source属性,但似乎没有任何效果。我得到的响应只是数据表的所有字段,没有DataInfo表的字段。我是否缺少序列化功能?

您是否尝试将
many=True
添加到您添加该
DataInfoSerializer
的位置

就是

类数据序列化程序(serializers.ModelSerializer):
datainfo=DataInfoSerializer(source=“datainfo”,read_only=True,many=True)
# ...

(顺便说一句,
数据
数据信息
数据信息
数据信息
都是非常可怕的名称。特别是,
相关的名称
应该以某种方式是复数或意味着复数,除非它们在一对一字段上。)

您是否尝试将
many=True
添加到您添加该
DataInfoSerializer
的位置

就是

类数据序列化程序(serializers.ModelSerializer):
datainfo=DataInfoSerializer(source=“datainfo”,read_only=True,many=True)
# ...

(顺便说一句,
数据
数据信息
数据信息
数据信息
都是非常可怕的名称。特别是,
相关的名称
应该以某种方式是复数或意味着复数,除非它们在一对一字段上。)什么是
模型。对话
以及它与
数据
的关系如何?对不起,输入错误,我把它改成了模型。数据什么是
模型。对话
以及它与
数据
的关系如何?对不起,输入错误,我把它改成了模型。数据我也试过了,尽管我也试过,但似乎都不起作用,但似乎也不起作用