Извиняюсь, если название неясно относительно того, в чем заключается проблема, я не уверен, как ее описать.
У меня есть «родительская» модель опроса, которая содержит мои общие поля, общие для всех опросов. .
class Survey(models.Model):
...
Однако, в зависимости от типа опроса, требуются дополнительные / разные поля
class SurveyA(models.Model):
survey = models.OneToOneField(
Survey,
on_delete=models.CASCADE,
primary_key=True
)
fieldA = models.TextField()
class SurveyB(models.Model):
survey = models.OneToOneField(
Survey,
on_delete=models.CASCADE,
primary_key=True
)
fieldC = models.TextField()
class SurveyN(models.Model):
survey = models.OneToOneField(
Survey,
on_delete=models.CASCADE,
primary_key=True
)
fieldN = models.TextField()
Когда я сериализую объект "Съемка" в json, мне потребуется соответствующий SurveryA, B..N объект, который должен быть сериализован вместе с ним, независимо от того, какой тип под-опроса связан с OnetoOneField
. Это выполнимо?
Ожидаемый результат при сериализации всех моделей Survey
:
[
{
"id": 1,
"SurveyA": {
"fieldA": "this is an 'A' type Survey",
}
},
{
"id": 2,
"SurveyB": {
"fieldB": "this is an 'B' type Survey",
}
},
{
"id": 3,
"SurveyN": {
"fieldN": "this is an 'N' type Survey",
}
}
]