我正在尝试向默认的 Django 表单添加一个新字段,当我尝试从我制作的 forms.py 文件中导入类时出现错误



错误发生在views.py文件中,当我试图导入我从forms.py文件创建的表单类时,我得到了一个错误。。。

Import ".forms" could not be resolved

以下是我的views.py文件的样子:

from django.shortcuts import render, redirect
from .forms import RegisterForm
# Create your views here.
def register(response):
if response.method == "POST":
form = RegisterForm(response.POST)
if form.is_valid():
form.save()
return redirect("/home")
else:
form = RegisterForm()
return render(response,"register/register.html",{"form":form})

这是我的forms.py文件

from django import forms
from django.contrib.auth import login, authenticate
from django.contrib.auth import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class RegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta: 
model = User
fields = ["username", "email", "password1", "password2"]

为什么我会犯那个错误/我错过了什么?

您的问题来自于导入"从django.contrib.auth导入表单"所以我想,当你评论或删除它时,一切都会好起来的!。

from django import forms
from django.contrib.auth import login, authenticate
# This is where your problem stems "from django.contrib.auth import forms"
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User

class RegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta: 
model = User
fields = ["username", "email", "password1", "password2"]

在你看来,保存表单后,条件语句不符合条件,因此它不会重定向到主页,你需要将重定向放在表单.save((的正下方,它才能满足条件,就像我所做的那样。

def register(request):
if request.method == "POST":
form = RegisterForm(request.POST)
if form.is_valid():
form.save()
return redirect("/home")
else:
form = RegisterForm()
return render(request,"register/register.html",{"form":form})

最新更新