我从事这个项目已经有一段时间了,并且从零开始学习了除HTML和CSS之外的所有内容。但是,我在不同场合遇到了麻烦,并在这里得到了很多帮助。这次,我想知道我需要使用哪种查询才能获得所需的结果。
目标是使用CreateView
在其他模板上使用我拥有的表单来查看我的结果。我有两个ModelForm
,两个都是ModelChoiceField
,除了第一个是ModelMultipleChoiceField
我将forms.py
放在这里,不确定我是否正确定义了save
函数。
from django import forms
from betterforms.multiform import MultiModelForm
from .models import Topic, Image, Question, Answer
class TopicForm(forms.ModelForm):
topic_name = forms.ModelMultipleChoiceField(
queryset = Topic.objects.all(),
widget = forms.SelectMultiple(
attrs = {'class': ''}
))
class Meta:
model = Topic
fields = ['topic_name',]
class QuestionForm(forms.ModelForm):
topic_name = forms.ModelChoiceField(
queryset = Topic.objects.all(),
widget = forms.Select(
attrs = {'class': ''}
))
class Meta:
model = Question
fields = ['questions_type',]
class QuizMultiForm(MultiModelForm):
form_classes = {
'topics' : TopicForm,
'questions' : QuestionForm
}
def save(self, commit=True):
objects = super(QuizMultiForm, self).save(commit=False)
if commit:
topics = objects['topics']
topics.save()
questions = objects['quesitons']
questions.topics = objects['questions']
return objects
这是我的views.py
,我尚未定义任何get_queryset
,因为我不知道它的工作方式。我知道我应该写类似的东西。
Topic.objects.all()
和Question.filter(question_topic = F(Topic.pk))
from django.shortcuts import render, render_to_response
from django.http import HttpResponse, HttpResponseRedirect
from django.views.generic import *
from django.views.generic.edit import *
from home.models import Topic, Image, Question, Answer
from home.forms import QuizMultiForm
class QuizView(CreateView):
form_classes = QuizMultiForm
template_name = 'index.html'
success_url = '/thanks/'
def get_queryset(arg):
Topic.objects
谢谢