from django.shortcuts import render, redirectfrom django.http import HttpResponsefrom .models import Tutorialfrom django.contrib.auth.forms import UserCreationFormfrom django.contrib.auth import login, logout, authenticatefrom django.contrib.auth.models import Userdef register (request): form = UserCreationForm(request.POST) if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): user = form.save() login(request, user) return redirect("main:homepage") else: for msg in form.error_messages(): print(form.error_messages[msg]) return render(request, 'main/register.html', context={'form':form})但我仍然收到此错误“‘dict’对象不可调用请求方法:POST 请求 URL: http: //127.0.0.1 :8000/register/ Django 版本:3.0.7 异常类型:TypeError 异常值:‘dict’对象不可调用"
1 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
for msg in form.error_messages(): print(form.error_messages[msg])
首先,Django 文档中没有任何地方用于form.error_messages
错误消息,如果form.error_messages
是字典,则存在 python 问题 -> ,通过调用字典dict is not callable
获取键列表。.keys()
根据最新的Django 文档,从您的表单中获取错误是使用form.errors
.
for field, msg in form.errors.items(): print(f'Field {key}: {msg}')
添加回答
举报
0/150
提交
取消