Per uno schema di database relazionale correttamente normalizzato, si desidera una distinta Choice
modello con una chiave esterna su 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",)
E poi puoi ottenere una Question
's con myquestion.choices.all()
(e ottieni la domanda da una Choice
con mychoice.question
).
Tieni presente che ciò non imporrà alcuna limitazione al numero di scelte per una domanda, nemmeno imponendo che una domanda abbia almeno una scelta correlata.
A meno che tu non abbia una ragione molto convincente per fare altrimenti, uno schema adeguatamente normalizzato è ciò che desideri quando usi un database relazionale (rdbms sono molto più di semplici bitbucket, offrono molto molto di funzioni utili, purché tu abbia uno schema adeguato, cioè).