我试图了解多态资源如何在 django-rest-framework-json-api 中工作,并且在我自己的项目和 django-rest-framework-json-api 提供的示例项目中都出现以下错误。我的模型是使用 django-polymorphic 创建的。我试图运行的示例项目是https://github.com/django-json-api/django-rest-framework-json-api/tree/master/example。
端点:localhost:8000/projects
{
"errors": [
{
"detail": "Incorrect relation type. Expected on of [artProject, researchProject], received None.",
"source": {
"pointer": "/data"
},
"status": "409"
}
]
}
用于创建新实例的项目页面的表单没有任何我可以指定项目类型的字段。它只显示主题字段。所以我也想知道如何创建一个艺术项目。
在文档中,它说类型由resource_name
视图、序列化器或模型的元数据确定。但是返回的 json 数据中的 type 是 none。这是因为serializer.instance = None
which 用于确定类型 whenforce_type_resolution
设置为True
。它设置为True
强制多态序列化程序根据实例解析类型。
所以我似乎无法解决这个问题,也许我缺少一些配置或者代码中确实存在错误,但我不知道。如果您遇到此问题或知道如何让示例应用程序使用多态资源,有人可以告诉我如何解决这个问题吗?