这是我的MCQ应用的模型。有没有办法在这个特定模型中显示answer
属于其中一个选项的关系,并且应该只有一个正确的选项
class Question(models.Model):
quiz_question=models.CharField(max_length=1000)
option1=models.CharField(max_length=500)
option2=models.CharField(max_length=500)
option3=models.CharField(max_length=500)
option4=models.CharField(max_length=500)
option5=models.CharField(max_length=500)
answer=models.CharField(max_length=500)
谢谢。
答案 0 :(得分:1)
添加指向正确选项的另一个字段。例如,您可以使用具有以下选项的ChoiceField:
(1, 'option1')
(2, 'option2')
(3, 'option3')
(4, 'option4')
(5, 'option5')
当总有这5个选项时,这个解决方案没问题。
在这种情况下,不要将选项指定为不同的字段,而是使用ManyToManyFields和ForeignKeyFields:
class Option(Model):
text = TextField(unique=True)
class Question(Model):
quiz_question = TextField(null=False, blank=False)
answer = TextField()
options = ManyToManyField(Option)
selected_option = ForeignKeyField(Option)
添加验证器或clean_selected_option
方法,以控制所选选项是options
之一。
或者使用包含附加列through
的{{1}}模型:
selected