我对Django ModelForm有这种奇怪的情况。
每当我第一次在Django中提交正确的模型时,我都没有问题。
但是每当我首次填写错误的表单时,从is_valid()获取错误并尝试重做以前的CORRECT表单,它会显示相同的确切错误(具有此标题的产品已存在。) 虽然我输入了一个不同的标题(它保留了先前的错误)
感谢您的帮助。
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)
答案 0 :(得分:0)
这意味着已经存在具有不同标题的产品。
您的观看代码是老式的但是正确的,应该按预期工作。