在 Django 模型窗体中为一个模型创建多个条目



对不起,如果标题令人困惑,我真的想不出如何措辞。

我正在创建一个有很多测验的网站。每个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/

最新更新