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

时间:2018-05-05 15:08:46

标签: django django-models django-rest-framework django-polymorphic

我试图理解多态资源在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用于确定force_type_resolution设置为True时的类型。它设置为True以强制多态序列化程序根据实例解析类型。

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

1 个答案:

答案 0 :(得分:0)

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