【发布时间】:2020-04-15 16:46:25
【问题描述】:
我在 DetailView 类中使用了内联表单集。
class DetailView(DetailView)
为了正确显示页面,我使用了get_context_data函数:
def get_context_data(self, *args, **kwargs):
context = super(QuestionDetailView, self).get_context_data(**kwargs)
context['formset'] = self.get_formset()
context['question'] = self.get_object()
return context
css 和 JS 在此页面上运行良好。但是,我不知道如果表单集无效,如何使页面也呈现良好
def post(self, request, slug):
[...]
formset = self.AnswerFormset(request.POST, instance=self.get_object()) # create/edit an answer
if formset.is_valid():
return self.form_valid(formset, slug)
else:
return render(request, 'questions/detail.html', {'slug': slug, 'formset': formset,'question':self.get_object()})
def form_valid(self, formset, slug):
formset.save()
return redirect('questions:question_detail', slug=slug)
如果表单集有效,则所有样式和 Java 脚本都可以正常工作。如果表单无效,则位于 questions/detail.html 上的样式和脚本不起作用。
我花了很多时间试图以某种方式将错误传达给 get_context_data,但我失败并单独渲染了页面(return render(request, 'questions/detail.html', {'slug': slug, 'formset ': formset,'question':self.get_object()})
您对如何正确呈现带有表单错误的页面有任何想法吗?干杯
【问题讨论】:
标签: javascript django