0

我试图了解多态资源如何在 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 = Nonewhich 用于确定类型 whenforce_type_resolution设置为True。它设置为True强制多态序列化程序根据实例解析类型。

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

4

1 回答 1

0

我最初试图在浏览器中创建实例,这引发了上述错误并且没有让我选择子类型。我在 Postman 上对此进行了测试并指定了类型并且它有效。我的印象是我什至可以创建一个 Project 实例(父实例本身,而不是子实例),但正如错误消息清楚地表明,我不能。

于 2018-05-08T21:38:02.737 回答