1

私は Django CBV を初めて使用し、正しく使用しようとしています。

ユーザーがクイズを作成できるようにしたいのですが、ユーザーは主題、レベル、主題を選択し、それらの選択に基づいて、データベースから10個の質問を引き出し、それを使用してクイズを作成します。そのため、ユーザーには 3 つの選択肢フィールドを含むフォームが表示されますが、実際にはモデルにはさらに多くのフィールドが含まれています。

クイズに基づく ModelForm を使用し、一部のフィールドを除外します。問題は、ユーザーがテーマ、レベル、チャプターを選択し、後でそれらを保存すると、質問を描画する方法がわからないことです。

クイズモデルは次のとおりです。

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

ご協力ありがとうございました

4

1 に答える 1

2

ビジネス ロジックをビューの form_valid 形式に配置する方法が 1 つであることがわかりました。

于 2013-04-14T21:24:52.257 に答える