问题描述
我在将“TreeQuerySet”对象转换为 QuerySet 对象时遇到问题
这是我在使用 DRF 进行序列化时遇到的错误
尝试获取序列化程序 SubCategoriesSerializer 上的字段名称值时出现 AttributeError。 序列化器字段可能命名不正确,并且与 TreeQuerySet 实例上的任何属性或键都不匹配。 原始异常文本为:
'TreeQuerySet' 对象没有属性 'name'。
序列化器
class SubCategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ('id','name','slug','views','title','description','avatar','color'
)
API 视图
category = Category.objects.get(pk=1)
categories = category.get_children()
categories_serializer = SubCategorySerializer(categories,context={'request': request})
解决方法
TreeQuerySet
实际上是 QuerySet
categories = category.get_children()
返回多个 Category
对象,但您尝试序列化单个实例,而您应该在序列化器 QuerySet
many=true
>
categories_serializer = SubCategorySerializer(categories,many=true,context={'request': request})