【问题标题】:Cannot create a polymorphic project instance in Django Rest framework JSON API example project无法在 Django Rest 框架 JSON API 示例项目中创建多态项目实例
【发布时间】:2018-05-05 15:08:45
【问题描述】:

我试图了解多态资源如何在 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 以强制多态序列化程序根据实例解析类型。

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-12-20
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 2020-08-12
      • 2018-06-13
      • 1970-01-01
      • 2019-12-29
      相关资源
      最近更新 更多