发送空白表格时。而不是跳过条件并渲染相同的表单。相反,它返回一个空表单并给出代码 200
class ContactView(View):
def get(self, request):
form = ContactModelForm()
return render(request, 'contact/contact_us.html', {'forms': form})
def post(self, request):
if request.method == 'POST':
form = ContactModelForm(request.POST)
if form.is_valid():
form.save()
return redirect('home')
form = ContactModelForm()
return render(request, 'contact/contact_us.html', {'forms': form})
您应该只在 GET 情况下构造一个新表单,所以:
class ContactView(View):
def get(self, request):
form = ContactModelForm()
return render(request, 'contact/contact_us.html', {'forms': form})
def post(self, request):
form = ContactModelForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('home')
# form = ContactModelForm()
return render(request, 'contact/contact_us.html', {'forms': form})
在这种情况下,您还可以通过使用
CreateView
来改善视图:
类ContactView(视图): 模板名称= def get(自身, 请求): 表单 = ContactModelForm() return render(request, 'contact/contact_us.html', {'forms': form})
def post(self, request):
form = ContactModelForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('home')
# form = ContactModelForm()
return render(request, '', {'forms': form})