对不起,如果标题令人困惑,我真的想不出如何措辞。
我正在创建一个有很多测验的网站。每个Quiz
模型
class Quiz(models.Model):
name = models.CharField(max_length = 80)
description = models.CharField(max_length = 300)
num_questions = models.IntegerField(default = 10)
slug = models.SlugField(max_length = 20)
img = models.URLField(blank = True) # allow it to be none
def __str__(self):
return self.name
def get_questions(self):
return self.question_set.all()
看起来像这样...它具有一些属性,例如名称,描述等。有许多Question
模型具有ForeignKey
到一个Quiz
:
class Question(models.Model):
quiz = models.ForeignKey(Quiz, on_delete = models.CASCADE)
img = models.URLField(blank = True) # allow none`
content = models.CharField(max_length = 200)
def __str__(self):
return self.content
def get_answers(self):
return self.answer_set.all()
还有一些Choice
模型ForeignKey
到一个Question
:
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete = models.CASCADE)
content = models.CharField(max_length = 200)
correct = models.BooleanField(default = False)
现在。我想创建一个ModelForm
,从中创建 1 个测验记录,然后创建 10 个问题记录,每个问题有 4 个选择记录。如果他们能自动将外键设置为正在创建的问题,那就太好了。我该怎么做?甚至可能吗?我什至不知道我对这个问题的措辞是否有意义,因为我脑子里有一个伟大的想法,但不知道如何用文字或代码正确表达它。
感谢帮助:)
如果您有 3 个模型,并且希望在 HTML 文件中以单个形式显示它们。然后,您只需为每个模型创建一个模型表单,并将它们添加到单个<form>
标签中。
类似问题的答案发布在这里。
如果您的意思是同时插入多个记录,请考虑查看 formset factory - https://docs.djangoproject.com/en/3.2/topics/forms/formsets/