Django Ошибка импорта: невозможно импортировать «имя» - PullRequest
0 голосов
/ 27 марта 2020

решено

Я получил ошибку, которую не понимаю: не могу импортировать имя "UserUpdateForm" из "users.forms".

Я делаю учебник django от Кори Шафера, и мы создаем форму как класс для обновления профилей пользователей страницы блога, затем импортируем ее в views.py и вызываем ее в функции, и когда я пытаюсь запустить сервер, появляется эта ошибка. Я уже искал другие вопросы, но в целом они говорят, что проблема заключается в круглом импорте, но я не могу понять, если это мой случай и где он. Я относительно новичок в программировании, поэтому я не совсем понимаю, как это работает, любая помощь будет иметь отношение:

(уже пытался импортировать UserUpdateForm внутри функции моего профиля и не работал)

Forms.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"]

views.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")

1 Ответ

1 голос
/ 27 марта 2020

Переименуйте форму в forms.py из UserUptadeForm в UserUpdateForm (переключите буквы d и t)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...