出现“编辑现有表单的表单无法保存并重定向”错误通常是由于表单验证失败导致的。以下是一种可能的解决方法,其中包含一个简单的示例代码:
clean
方法中执行表单验证,将错误信息保存在cleaned_data
字典中。例如:from django import forms
class MyForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
def clean(self):
cleaned_data = super().clean()
name = cleaned_data.get('name')
email = cleaned_data.get('email')
# 进行表单验证
if not name or not email:
raise forms.ValidationError('姓名和电子邮件都是必填字段')
from django.shortcuts import render, redirect
from .forms import MyForm
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# 保存表单
form.save()
# 重定向到另一个页面
return redirect('success_view')
else:
form = MyForm()
# 将表单和错误信息传递给模板
return render(request, 'my_template.html', {'form': form})
form.errors
来显示表单验证错误消息。例如:
通过以上步骤,当表单验证失败时,用户将在表单下方看到相应的错误消息,并且表单数据不会保存和重定向。