Pro správně normalizované schéma relační databáze potřebujete odlišnou Choice model s cizím klíčem na 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",)
A pak se můžete dostat na Question možnosti pomocí myquestion.choices.all() (a získejte otázku z Choice pomocí mychoice.question ).
Všimněte si, že to nestanoví žádné omezení počtu možností pro otázku, dokonce ani nenařizuje, aby otázka měla alespoň jednu související volbu.
Pokud nemáte velmi pádný důvod k opakování, správně normalizované schéma je to, co chcete při používání relační databáze (rdbms jsou mnohem víc než pouhé bitbuckety, nabízejí toho hodně užitečných funkcí – pokud máte správné schéma).