我想通过 django 向我的网站添加注册。我做对了所有事情:

from django.shortcuts import render, redirect

from django.http import HttpResponse

from .models import Tutorial

from django.contrib.auth.forms import UserCreationForm

from django.contrib.auth import login, logout, authenticate

from django.contrib.auth.models import User



def 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’对象不可调用"


肥皂起泡泡
浏览 109回答 1
1回答

慕尼黑5688855

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}')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python