python - Django 导入错误:无法导入“名称”
问题描述
解决了
我收到一个我不明白的错误:无法从“users.forms”导入名称“UserUpdateForm”。
我正在做 corey schafer 的 django 教程,我们正在创建一个表单作为类来更新博客页面的用户配置文件,然后将其导入 views.py 并在函数中调用它,当我尝试运行服务器时弹出那个错误。我已经寻找过其他问题,但总的来说,他们说问题是循环导入,但我不知道这是否是我的情况以及它在哪里。我对编程比较陌生,所以我真的不明白它是如何工作的,任何帮助都会受到重视:
(已经尝试在我的配置文件功能中导入 UserUpdateForm 并且没有工作)
表格.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import Profile
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ["username", "email", "password1", "password2"]
class UserUptadeForm(forms.ModelForm):
email = forms.EmailField()
class Meta:
model = User
fields = ["username", "email"]
class ProfileUpdateForm(forms.ModelForm):
class Meta:
model = Profile
fields = ["image"]
视图.py
from django.shortcuts import render, redirect
from django.contrib import messages
from .forms import UserRegisterForm, UserUpdateForm, ProfileUpdateForm
from django.contrib.auth.decorators import login_required
def register(request):
if request.method == "POST":
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get("username")
messages.success(request, f"Your account has been created! You are now able to log")
return redirect("login")
else:
form = UserRegisterForm()
return render(request,"users/register.html",{"form": form})
@login_required
def profile(request):
u_form = UserUpdateForm.forms()
p_form = ProfileUpdateForm.forms()
context= {
"u_form": u_form,
"p_form": p_form
}
return render(request, "users/profile.html")
解决方案
将表单重命名为from forms.py
(切换字母和)UserUptadeForm
UserUpdateForm
d
t
推荐阅读
- java - 如何从 Java 中的 LinkedList 中删除元素?如何将第一个元素设置为 Java 中链表的头部?
- python - 多次调用 np.random.multinomial 的行为是什么?
- php - 使用 HTML 按钮单击运行 PHP
- c# - 异步修改相关对象列表会产生意外结果
- python - linux中命令“ls”后的点有什么用?〜ls
- excel - Excel VBA(子或函数未定义错误)
- python - Python嵌套条件?双重条件后跟另一个条件
- recursion - 递归分析(时间复杂度)
- c++ - 显示 CSV 文件 C++ 的整行
- reactjs - 错误:元素不可分配给反应中的类型字符串