2013-04-13 4 views
1

저는 장고 CBV를 처음 사용하고 있으며 올바르게 사용하려고합니다.Django CreateView modelform

사용자가 퀴즈를 만들 수있게하고 싶습니다. 사용자가 주제, 레벨 및 주제를 선택하고 그 중 하나를 선택하면 데이터베이스에서 10 개의 질문을 그려서 퀴즈를 만듭니다. 그래서 사용자에게는 3 개의 선택 필드가 포함 된 양식이 제공되지만 실제로는 모델에 더 많은 필드가 포함됩니다.

퀴즈를 기반으로하는 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') 

그리고보기 : 나는 것을 발견

답변

2

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

여러분의 도움에 감사드립니다 가는 길 중 하나는 t o 비즈니스 로직을 form_valid 형식의 뷰에두면 원하는대로 작동합니다.