2013-04-13 96 views
1

我是新来的Django CBV,我想正确使用它。Django CreateView模型

我想让用户创建一个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 

谢谢您的帮助

回答

2

我发现,要走的路之一是t o将我的业务逻辑放在视图的form_valid形式中,它按我的意愿工作。

相关问题