За правилно нормализирана схема на релационна база данни вие искате отделен Choice
модел с външен ключ на Question
:
class Question(models.Model):
question = models.CharField(...)
class Choice(models.Model):
question = models.ForeignKey("Question", related_name="choices")
choice = modelsCharField("Choice", max_length=50)
position = models.IntegerField("position")
class Meta:
unique_together = [
# no duplicated choice per question
("question", "choice"),
# no duplicated position per question
("question", "position")
]
ordering = ("position",)
И тогава можете да получите Question
изборите на с myquestion.choices.all()
(и получете въпроса от Choice
с mychoice.question
).
Обърнете внимание, че това няма да наложи никакво ограничение върху броя на изборите за въпрос, дори не изисква въпросът да има поне един свързан избор.
Освен ако нямате много убедителна причина да направите друго, правилно нормализирана схема е това, което искате, когато използвате релационна база данни (rdbms са много повече от просто bitbuckets, те предлагат много полезни функции - стига да имате подходяща схема, т.е.).