2013-04-13 139 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形式中,它按我的意願工作。

相關問題