【发布时间】:2021-05-06 11:36:36
【问题描述】:
我有一个模型表单,在保存表单后我得到主键并将其传递给第二个表单,但有些如何不保存第二个表单数据。我不确定我做错了什么。
def create_new_survey(request):
if request.method == 'POST':
form = NewSurveyForm(request.POST)
if form.is_valid():
new_survey = form.save()
return HttpResponseRedirect(reverse(add_question, args=(new_survey.pk,)))
else:
form = NewSurveyForm()
return render(request, 'create_new_survey.html', {'form': form})
def add_question(request, survey_id):
if request.method == 'POST':
person = Survey.objects.get(id=survey_id)
form = QuestionForm(request.POST, instance=person)
if form.is_valid():
form.save()
return HttpResponseRedirect('/choice')
else:
form = QuestionForm()
return render(request, 'question.html', {'form': form},)
型号:
class Survey(models.Model):
title = models.CharField(max_length=200)
#creator = models.ForeignKey(User, on_delete=models.CASCADE)
created_at = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
class Questions(models.Model):
survey = models.ForeignKey(Survey, on_delete=models.CASCADE)
enter_question = models.CharField(max_length=900)
def __str__(self):
return self.enter_question
表格:
class QuestionForm(forms.ModelForm):
class Meta:
model = Questions
fields = ('enter_question',)
【问题讨论】:
-
请将您的表格添加到问题中。为什么要将
Survey的实例传递给QuestionForm?instance应该是表单正在保存的对象,考虑到表单是针对Questions的,如果您将其传递给实例,它应该是Questions的实例。
标签: django