Django ModelForm在第一个错误后失败,并出现相同的错误
我对Django ModelForm有一种奇怪的情况 每当我第一次在Django中提交正确的模型表单时,我都没有问题 但是,每当我第一次填写一个不正确的表单,从is_valid()中获取错误并尝试重做以前正确的表单时,它都会显示相同的错误(具有此标题的产品已经存在) 尽管我输入了不同的标题(它保留了以前的错误) 谢谢你的帮助Django ModelForm在第一个错误后失败,并出现相同的错误,django,django-forms,Django,Django Forms,我对Django ModelForm有一种奇怪的情况 每当我第一次在Django中提交正确的模型表单时,我都没有问题 但是,每当我第一次填写一个不正确的表单,从is_valid()中获取错误并尝试重做以前正确的表单时,它都会显示相同的错误(具有此标题的产品已经存在) 尽管我输入了不同的标题(它保留了以前的错误) 谢谢你的帮助 def add_product(request): if request.method == 'POST': form = ProductForm(
def add_product(request):
if request.method == 'POST':
form = ProductForm(request.POST, request.FILES)
# Basic form validation: Checking what to submit with the model. Type checking (see the the schema is enforced)
if form.is_valid():
product = form.save(commit=False)
product.save()
return HttpResponseRedirect(reverse('single_product', args=(product.slug,)))
else:
form = ProductForm()
return render_to_response("products/add.html", locals(), context_instance=RequestContext(request))
在欧芹自定义验证出现错误后,这种情况似乎会发生,在我更正错误并发送表单后,它们会有点“停留”
表格如下:
@parsleyfy
class ProductForm(ModelForm):
class Meta:
model = Product
fields = ('title', 'description', 'price', 'file')
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_tag = False
self.helper.disable_csrf = True
self.helper.layout = Layout(
Div(
Div(Field('file'), css_class='col-md-4'),
Div(Field('title'), css_class='col-md-9'),
Div(Field('description'), css_class='col-md-12'),
Div(Field(PrependedText('price', '$')), css_class='col-md-7'),
'preview',
'screenshot',
css_class='row',
)
)
super(ProductForm, self).__init__(*args, **kwargs)
这意味着具有不同名称的产品也已经存在
您的视图代码已经过时,但正确无误,应该可以正常工作。我刚刚注意到,如果我禁用django parsley,问题就会消失。这是我得到的自定义检查代码。也许你能看到一些错误?var checkInput=function(){instance=$('#product').parsley();if(instance.isValid()){var file=document.getElementById('id#file').files[0];}}您似乎忘记了显示表单本身的代码。