所以我导入了‘LoginView,LogoutView’,但是当我try 导入‘SignupView’时,我得到了以下错误:ImportError:无法从‘django.contri.auth.views’(C:\Users\USER\Desktop\djang0\venv\Lib\site-packages\django\contrib\auth\views.py)导入名称‘SignupView’

这就是我认为是必要的代码.

#my views.py

from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render, redirect, reverse
from django.core.mail import send_mail
from django.views import generic
from django.http import HttpResponse
from.models import Lead, Agent
from.forms import LeadForm, LeadModelForm

class SignupView(generic.CreateView):
    template_name = "registration/signup.html"
    form_class = UserCreationForm

    def get_success_url(self):
        return reverse("login")


#my app urls.py

from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.auth.views import LoginView, LogoutView, SignupView
from django.urls import path, include
from leads.views import hero_page, HeroPageView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', HeroPageView.as_view(), name="hero-page"),
    path('leads/', include('leads.urls', namespace="leads")),
    path('login/', LoginView.as_view(), name="login"),
    path('logout/', LogoutView.as_view(), name="logout"),
    path('signup/', SignupView.as_view(), name="signup"),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

我不知道该try 什么,我在Django还是个初学者.我在多个网站和文章上做了很多研究,但我见过的唯一有类似问题的人不得不从‘from django.contri.auth.views’中删除‘view’,因为他们运行的是Django的旧版本,我认为Django是2.0.1版,但我运行的是Django%.0.1版,我听说它是有效的. 任何帮助都将非常感谢,请以任何初学者都能理解的方式解释.

推荐答案

您在自己的views.py中定义了SignupView,因此您要从那里导入它:

from app_name.views import SignupView
from django.contrib.auth.views import LoginView, LogoutView  # no SignupView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', HeroPageView.as_view(), name='hero-page'),
    path('leads/', include('leads.urls', namespace='leads')),
    path('login/', LoginView.as_view(), name='login'),
    path('logout/', LogoutView.as_view(), name='logout'),
    path('signup/', SignupView.as_view(), name='signup'),
]

话虽如此,您的视图似乎只注入了一个不同的模板和一个不同的成功URL,您只需将这些添加到CreateView:

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.views import LoginView, LogoutView  # no SignupView
from django.urls import reverse_lazy

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', HeroPageView.as_view(), name='hero-page'),
    path('leads/', include('leads.urls', namespace='leads')),
    path('login/', LoginView.as_view(), name='login'),
    path('logout/', LogoutView.as_view(), name='logout'),
    path(
        'signup/',
        CreateView.as_view(
            template_name='registration/signup.html',
            form_class=UserCreationForm,
            success_url=reverse_lazy('login'),
        ),
        name='signup',
    ),
]

Python相关问答推荐

使用numpy提取数据块

将整组数组拆分为最小值与最大值之和的子数组

数据抓取失败:寻求帮助

使用setuptools pyproject.toml和自定义目录树构建PyPi包

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

导入...从...混乱

如何根据一列的值有条件地 Select 前N组?

字符串合并语法在哪里记录

Python脚本使用蓝牙运行在Windows 11与raspberry pi4

为什么if2/if3会提供两种不同的输出?

如何防止Pandas将索引标为周期?

Discord.py -

将链中的矩阵乘法应用于多组值

Django.core.exceptions.SynchronousOnlyOperation您不能从异步上下文中调用它-请使用线程或SYNC_TO_ASYNC

Polars时间戳同步延迟计算

将数字数组添加到Pandas DataFrame的单元格依赖于初始化

FileNotFoundError:[WinError 2]系统找不到指定的文件:在os.listdir中查找扩展名

我怎样才能让深度测试在OpenGL中使用Python和PyGame呢?

Pandas ,快速从词典栏中提取信息到新栏

pyspark where子句可以在不存在的列上工作