Django form.is_valid() 为 False,但没有命中 else 语句?
Django form.is_valid() is False, but not hitting the else statement?
我正在做一些应该很简单的事情,但是 运行 变成了一个非常奇怪的问题。
@csrf_protect
def employee_create(request, company_id):
template_name = 'business/employee-create.html'
data = dict()
company = Company.objects.get(id=company_id)
if request.method == 'POST':
employee_form = EmployeeForm(request.POST)
if employee_form.is_valid():
logger.debug('Valid')
emp = employee_form.save(commit=False)
emp.company = venue
emp.user = request.user
emp.save()
return redirect('comp_detail', company_id=company_id)
else:
logger.debug('Error')
else:
employee_form = EmployeeForm()
data['html_form'] = render_to_string(
template_name,
{'form': employee_form, 'company_id': company.id},
request=request,
)
return JsonResponse(data)
GET
请求只是一个弹出 bootstrap 表单。但我的奇怪情况发生在 POST
请求中。我发送了一个完全为空的无效表单(在表单模式中,我弹出了 djangos 内置的表单错误),但是 else
语句永远不会被命中,它应该在我的中打印 Error
django 记录器。
表单无效,但又不无效?一定是我遗漏了什么??
提前感谢任何看一眼的人!
记录器通常设置为某个日志级别。这意味着,根据级别的不同,某些日志记录可能不会被记录。 log levels [Python-doc]按升序排列:NOTSET
、DEBUG
、INFO
、WARNING
、ERROR
和CRITICAL
.
根记录器通常以 WARNING
作为阈值创建,因此 INFO
、DEBUG
和 NOTSET
将 而不是 被记录。
您可以更改阈值,或者您可以记录更高级别的消息:
if employee_form.is_valid():
logger.<b>error(</b>'Valid'<b>)</b>
# …
else:
logger.<b>error(</b>'Error'<b>)</b>
我正在做一些应该很简单的事情,但是 运行 变成了一个非常奇怪的问题。
@csrf_protect
def employee_create(request, company_id):
template_name = 'business/employee-create.html'
data = dict()
company = Company.objects.get(id=company_id)
if request.method == 'POST':
employee_form = EmployeeForm(request.POST)
if employee_form.is_valid():
logger.debug('Valid')
emp = employee_form.save(commit=False)
emp.company = venue
emp.user = request.user
emp.save()
return redirect('comp_detail', company_id=company_id)
else:
logger.debug('Error')
else:
employee_form = EmployeeForm()
data['html_form'] = render_to_string(
template_name,
{'form': employee_form, 'company_id': company.id},
request=request,
)
return JsonResponse(data)
GET
请求只是一个弹出 bootstrap 表单。但我的奇怪情况发生在 POST
请求中。我发送了一个完全为空的无效表单(在表单模式中,我弹出了 djangos 内置的表单错误),但是 else
语句永远不会被命中,它应该在我的中打印 Error
django 记录器。
表单无效,但又不无效?一定是我遗漏了什么??
提前感谢任何看一眼的人!
记录器通常设置为某个日志级别。这意味着,根据级别的不同,某些日志记录可能不会被记录。 log levels [Python-doc]按升序排列:NOTSET
、DEBUG
、INFO
、WARNING
、ERROR
和CRITICAL
.
根记录器通常以 WARNING
作为阈值创建,因此 INFO
、DEBUG
和 NOTSET
将 而不是 被记录。
您可以更改阈值,或者您可以记录更高级别的消息:
if employee_form.is_valid():
logger.<b>error(</b>'Valid'<b>)</b>
# …
else:
logger.<b>error(</b>'Error'<b>)</b>