【发布时间】:2019-10-29 22:56:59
【问题描述】:
我正在尝试通过 DRF 的 Response() 返回字典,但我无法从字典中访问任何模型字段。
我尝试在不先将数据打包到字典中的情况下返回单个字段的值,并且成功了。我知道 Django 的查询集是惰性的,只在评估时才访问数据库,但我对为什么我的模型在字典中访问时突然没有字段感到困惑。
@api_view(['GET'])
def arDetail(request):
'''
gets data from model and puts it into a dict to be returned
'''
model = model.objects.get(pk=int(request.GET["pk"]))
#return Response(model.pk) WORKS here, but throws a nameerror
#when accessed in rspData
rspData = {
pk: model.pk,
problem: model.problem,
solution: model.solution,
primaryCategory: model.primaryCategory,
secondaryCategory: model.secondaryCategory,
profilePic: model.author.profilePic
}
return Response(rspData)
我需要从其他模型中提取 URLS 和诸如此类的东西,所以我不能像在其他模型上那样只使用 DRF 的序列化程序。应该发生的是,我在字典中设置了每个必要的字段,然后使用 Response() 将其返回,但我无法从 rspData 字典中访问模型字段。相反,Django 在字典的第一行抛出一个 NameError (如果我注释掉字段以查找违规者,还有任何其他)。
【问题讨论】:
-
用完整的回溯显示实际错误。
标签: python django dictionary django-rest-framework