Структура JSON будет такой:
Код: Выделить всё
{
"id": 5,
"name": "test-theme",
"types": [
{
"type_id": 101,
"value": "test-type",
"subtypes": [
{
"subtype_id": 101,
"value": "test-subtype",
"additionals": [
{
"additional_id": 101,
"value": "test-additional"
}
]
}
]
}
]
}
Я настроил основные модели -> Тип, Подтип и Дополнения. Поскольку эти модели будут определены и неизменяемы.
Затем я настроил свои модели для создания определяемого пользователем контекста темы. Это единственный раз, когда у типа есть подтипы, а у подтипа есть дополнительные.
Пример того, как я это настраивал:
Код: Выделить всё
class Theme(models.Model):
"""
...
"""
name = models.CharField(max_length=100, unique=True)
...
class ThemeTypeBridge(models.Model):
"""
...
"""
theme = models.ForeignKey(Theme, related_name="types", on_delete=models.CASCADE)
type = models.ForeignKey(Type, related_name="theme_links", on_delete=models.CASCADE)
...
Theme
- ThemeTypeBridge
- ThemeSubTypeBridge
- ThemeAdditionalBridge
У меня проблемы с записываемыми сериализаторами в django, поскольку у меня есть основная модель, имеющая кучу дополнительных вложенных моделей. Тема одна из них. Эта основная модель, modelA, имеет записываемый сериализатор. Однако у меня возникли проблемы с этой ошибкой:
Код: Выделить всё
{"types":[{"type":["Incorrect type. Expected pk value, received Type."],"subtypes":[{"subtype":["Incorrect type. Expected pk value, received Subtype."],"additionals":[{"additional":["Incorrect type. Expected pk value, received Additional."]}]}]}]}
Подробнее здесь: https://stackoverflow.com/questions/798 ... d-modeling
Мобильная версия