【发布时间】:2021-12-24 14:54:33
【问题描述】:
这是我面临的问题的一个玩具示例。出于某种原因,我无法将预期的数据传递给我的序列化程序,这会引发以下错误。
/my-end-point/处的AttributeError
尝试在序列化程序 ParentSerializer 上获取字段 main_data 的值时出现 AttributeError。
序列化程序字段可能命名不正确,并且与 str 实例上的任何属性或键都不匹配。
原始异常文本是:“str”对象没有属性“main_data”。
class MainModelSerializer(serializers.ModelSerializer):
class Meta:
model = MainModel
class ParentSerializer(serializers.Serializer):
main_data = MainModelSerializer(many=True)
extra_data = serializers.FloatField()
class View(ListCreateAPIView):
serializer = ParentSerializer
def get_queryset(self):
# extra_data would have some calculated value which would be a float
extra_data = some_calculated_value()
queryset = MainModel.objects.filter(some filters)
return {
'main_data': queryset,
'extra_data': extra_data
}
# expected data that is passed to the ParentSerializer
# {
# 'main_data': queryset,
# 'extra_data': extra_data
# }
【问题讨论】:
-
get_queryset 只返回一个查询集。无法返回字典
-
那么有没有办法向我的序列化器发送额外的数据?
-
我这样做了,但分页类无法使用。
标签: django django-rest-framework django-views django-serializer