django-views - self.errors 为空,但在模板中显示错误
问题描述
我不敢相信:
表格.py:
class MyForm(forms.Form):
field1 = forms.CharField(label='somelabel', max_length=254, widget=forms.TextInput(), required = False)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
#Focus on form field whenever error occurred
logger.error('Warning')
errorList=list(self.errors)
logger.error('{}'.format(self.errors))
for item in errorList:
self.fields[item].widget.attrs.update({'autofocus': ''})
break
视图.py:
if request.method == 'POST':
form1 = OtherForm(request.POST,prefix='other')
form2 = MyForm(request.POST, prefix='my')
if form1.is_valid():
(...)
if form2.is_valid():
form2.add_error('field1','This is error on field1')
else:
form1 = OtherForm( prefix='other')
form2 = MyForm(prefix='my')
return render(request,'vote.html', context = {
'form1':form1,
'form2':form2,
})
我可以在 Field1 下方以漂亮的红色看到“这是 field1 上的错误”,我可以在调试中看到警告,但在调试中没有错误。self.errors 是空的...帮助!
解决方案
所以解决方案是在添加错误后设置自动对焦:
form2.add_error('field1','This is error on field1')
form2.fields['field1'].widget.attrs.update({'autofocus': ''})
推荐阅读
- c - PostgreSQL:在 PQexecPrepared() paramValues 参数中给出的类型与占位符和类型之间的关系
- unreal-engine4 - 为什么“Cast to BP_Ladder”总是失败?
- asp.net - ActionFilterAttribute - 检索查询字符串 .net core 2.2
- excel - 根据单元格值自动更新 URL 的宏
- .net - 执行该方法的副本总是提供 2 倍的性能
- ruby-on-rails - 删除 Sidekiq 作业
- java - Apache POI:RegionUtil XSSF 合并区域的边框颜色选择(基于 awt.Color)?
- javascript - 倒计时午夜,每天刷新
- python - asyncio:通过单个 websocket 连接多路复用消息
- crystal-lang - 如何将任何散列添加到空的散列数组中?