首页 > 解决方案 > 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")

标签: pythondjango

解决方案


将表单重命名为from forms.py(切换字母和)UserUptadeFormUserUpdateFormdt


推荐阅读