Я пытаюсь понять, как полиморфные ресурсы работают в 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 типа нет. Это потому, что serializer.instance = None
используется для определения типа, когда force_type_resolution
установлен на True
. Он установлен на True
, чтобы заставить полиморфные сериализаторы разрешать тип на основе экземпляра.
Так что я не могу решить эту проблему, может быть, мне не хватает какой-то конфигурации или действительно есть ошибка в коде, но я понятия не имею. Может кто-нибудь сказать мне, как решить эту проблему, если вы столкнулись с этой проблемой или знаете, как заставить пример приложения работать с полиморфными ресурсами?