Django CreateView模型

时间:2013-04-13 16:52:25

标签: django django-forms django-class-based-views

我是Django CBV的新手,我正在尝试正确使用它。

我想让用户创建一个quizz,用户选择一个主题,一个级别和一个主题,并根据这些选择我从数据库中提取10个问题并用它创建一个quizz。 因此,向用户呈现包含3个选择字段的表单,但实际上该模型包含更多字段。

我使用基于quizz的ModelForm并排除了一些字段。 问题是,一旦用户选择一个级别和一个章节并在之后保存它们,我不知道如何绘制问题。

以下是quizz模型:

class Quizz(models.Model):

    user = models.ForeignKey(User)
    date_started = models.DateTimeField('date started')
    questions = models.ManyToManyField(Question, through = 'QuestionStatus')
    level = models.ForeignKey(Level, null = True)
    subject = models.ForeignKey(Subject, null = True)
    chapter = models.ForeignKey(Chapter, null = True)
    grade = models.IntegerField(default = 0)
    finished = models.BooleanField(default = False)

表格:

class QuizzCreateForm(forms.ModelForm):
    class Meta:
        model = Quizz
        fields = ('subject', 'level', 'chapter')

观点:

class QuizzCreate(CreateView):
    model = Quizz        
    form_class = QuizzCreateForm

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

我发现其中一种方法是将我的业务逻辑放在视图的form_valid形式中,它可以按我的意愿工作。