1

我正在制作一个页面,用于向用户添加产品到网上商店,但ValidationError在我的模板中显示时遇到了问题。ValidationError如果所选类别不是要选择的最具体的类别,则会引发。要选择一个类别,用户必须通过链式相关组合框选择,从一个组合框开始用于主类别,一旦选择主类别,<select>就会出现另一个用于选择子类别的组合框,依此类推,直到选择最里面的子类别。根据所选类别,显示不同的 ModelForm。category是我的基本 Product 模型上的一个字段(其他模型,例如 Book 或 Shoes,继承自该字段)并且未列在 ModelForms 的内部 Meta 类字段中,因此我clean_category的 ModelForms 上没有方法。

这是我的看法:

@login_required
def product_create_view(request):
    if request.method == 'POST':
        main_category = request.session.get('main_category')
        create_product_form = mappings[main_category](request.POST)
        if create_product_form.is_valid():
            obj = create_product_form.save(commit=False)
            category = request.session.get('category')
            if Category.objects.get(id=category).is_leaf_node():
                obj.category = Category.objects.get(id=category)
                obj.save()
            else:
                raise forms.ValidationError('Please select most specific category.')
    return render(request, 'products/product_create.html', {
        'categories': Category.objects.filter(parent=None)
    })

如何在模板中呈现 ValidationError,即我的 ValidationError 怎么能ValidationError在我的{{ field.errors }}?目前我看到一个堆栈跟踪。

4

0 回答 0