Django:如何序列化一对多关系
我似乎不知道如何在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
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)
# ...
(顺便说一句,
数据
、数据信息
、数据信息
和数据信息
都是非常可怕的名称。特别是,相关的名称
应该以某种方式是复数或意味着复数,除非它们在一对一字段上。)什么是模型。对话
以及它与数据
的关系如何?对不起,输入错误,我把它改成了模型。数据什么是模型。对话
以及它与数据
的关系如何?对不起,输入错误,我把它改成了模型。数据我也试过了,尽管我也试过,但似乎都不起作用,但似乎也不起作用