DRF中调用serializer.data返回空字典无有效数据问题求助
问题原因
你遇到的序列化返回空的问题由两个错误导致:
- 序列化类继承类型错误:
serializers.Serializer是基础序列化器,不会自动读取Meta配置里的模型、字段参数,只有继承serializers.ModelSerializer的序列化类,才会根据Meta配置自动生成对应序列化字段。你当前没有手动定义任何序列化字段,用基础Serializer自然拿不到任何数据,返回空字典。 - 字段参数拼写错误:你定义的
IndustriaCategoria序列化类中,把字段配置项fields错拼成了fielst,即使修正了继承类,这个拼写错误也会导致配置不生效。
另外还有一个非强制但建议修正的点:你的序列化类名和模型类名完全重名,容易出现导入混淆,建议把序列化类名改为和模型区分的命名,比如IndustriaCategoriaSerializer。
修正后的serializers.py代码
from rest_framework import serializers from .models import IndustriaCategoria, Post class IndustriaCategoriaSerializer(serializers.ModelSerializer): class Meta: model = IndustriaCategoria fields = '__all__' class PostSerializer(serializers.ModelSerializer): class Meta: model = Post fields = '__all__'
验证
修正后重新执行你的测试流程,serializer.data就能正常返回Post实例的全部序列化字段。
内容的提问来源于stack exchange,提问作者Rodragon
相关产品推荐
相关产品推荐

