无法在 Django Rest 框架 JSON API 示例项目中创建多态项目实例

Cannot create a polymorphic project instance in Django Rest framework JSON API example project

我试图了解多态资源在 django-rest-framework-json-api 中的工作原理,但在我自己的项目和 django 提供的示例项目中都出现了以下错误-rest-框架-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。这是因为force_type_resolution设置为True时用来判断类型的serializer.instance = None。它设置为 True 以强制多态序列化程序根据实例解析类型。

所以我似乎无法解决这个问题,也许我缺少一些配置或者代码中确实存在错误但我不知道。如果您遇到这个问题或者知道如何让示例应用程序使用多态资源,有人可以告诉我如何解决这个问题吗?

我最初尝试在浏览器中创建实例,但抛出上述错误并且不允许我选择子类型。我在 Postman 上测试了这个并指定了类型并且它有效。我的印象是我什至也可以创建一个 Project 实例(父实例本身,而不是子实例),但正如错误消息明确指出的那样,我不能。