Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Can';单独呈现字段时,无法访问错误_Django_Django Forms_Django Templates - Fatal编程技术网

Django Can';单独呈现字段时,无法访问错误

Django Can';单独呈现字段时,无法访问错误,django,django-forms,django-templates,Django,Django Forms,Django Templates,在views.py中: if form.is_valid(): # ...process form... return HttpResponseRedirect(reverse('auctions:index')) else: return HttpResponseRedirect(reverse('auctions:create')) 在模板中,执行{{form.fieldname}}正确呈现表单字段。但是,如果我为此字段提交了一个通过html验证但未通过is_val

在views.py中:

if form.is_valid():
    # ...process form...
    return HttpResponseRedirect(reverse('auctions:index'))
else:
    return HttpResponseRedirect(reverse('auctions:create'))
在模板中,执行
{{form.fieldname}}
正确呈现表单字段。但是,如果我为此字段提交了一个通过html验证但未通过
is_valid()
的值,则即使我将
{{form.fieldname.errors}
放入模板中,也不会显示错误消息。我做错了什么


编辑:我意识到我只是用HttpResponseRedirect呈现一个未绑定的表单,所以我将代码更改为:

if form.is_valid():
    #...process form...
    return HttpResponseRedirect(reverse('auctions:index'))
else:
    return render(request, "auctions/create.html", {'form': form})

但是,这是可行的,在用户提交表单后使用render()而不是HttpResponseRedirect()不是最佳做法,对吗?有没有办法解决这个问题?

因为在出现错误时,例如表单验证失败时,您已重定向到另一个视图“拍卖:创建”,我认为它使用不同的html。@Mahendertakur是的,我刚刚了解了“绑定表单”和“未绑定表单”的含义。如何呈现绑定表单?迭代模板中传递的表单对象,每个项都会有
错误
方法,包含该特定字段的所有错误列表。请参阅“我只是呈现一个未绑定的表单”-验证一个没有数据的表单来呈现绑定表单是没有意义的。。首先,您需要通过向表单对象传递数据来创建表单对象,即Form=Form(您的_数据)