Django ModelForm在第一次错误后失败并出现相同的错误

时间:2015-01-19 01:24:08

标签: django django-forms

我对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)

1 个答案:

答案 0 :(得分:0)

这意味着已经存在具有不同标题的产品。

您的观看代码是老式的但是正确的,应该按预期工作。