我从事宠物项目(紧急通知系统)

这是我的观点

from django.shortcuts import render, redirect
from django.views.generic import TemplateView
from django.contrib.messages.views import SuccessMessageMixin
from django.views.generic.edit import CreateView
from django.urls import reverse_lazy
from django.http import HttpResponse
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages

####################################################

class Main(TemplateView):
    template_name = 'emnosys/main.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['css_file'] = 'styles.css'
        return context

###################################################



def Registration(request):
    if request.method == "POST":
        username = request.POST['username']
        email = request.POST['email']
        password1 = request.POST['password1']
        password2 = request.POST['password2']

        myuser = User.objects.create_user(username, email, password1)
        myuser.save()

        return redirect('signin')
    return render(request, "emnosys/registration.html")

###############################################

def Signin(request):

    if request.method == 'POST':
        username = request.POST['username']
        password1 = request.POST['pass1']

        user = authenticate(username=username, password=password1)

        if user is not None:
            login(request, user)
            return render(request, "emnosys/main.html")
        else:
            return redirect('signin')
    return render(request, "emnosys/signin.html")

################################################

def Signout(request):
    logout(request)
    return redirect('home')

######################################################

class PersonalPage(TemplateView):
    template_name = 'emnosys/personalpage.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['css_file'] = 'styles.css'
        return context

这是我的URL

from django.urls import path
from . import views
from .views import Main


urlpatterns = [
    path('', Main.as_view(), name='home'),
    path('registration/', views.Registration, name='registration'),
    path('signin/', views.Signin, name='signin'),
    path('signout/', views.Signout, name='signout'),
    path('personalpage/', views.PersonalPage, name='personalpage'),
]

这是我的个人主页html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="../../static/emnosys/css/styles-personalpage.css">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="main">
        <div class="username--photo">
            <img src="https://dummyimage.com/250x250/" alt="" class="username--photo">
        </div>
        <div class="username">
            <label for="#username">Name</label>
            username
        </div>
        <div class="email">
            <label for="#email">Email</label>
            example@example.com
        </div>
        <div class="signout">
            <button type="submit" class="signout">Sign Out</button>
        </div>
    </div>
    <div class="waves">
        <img src="../../static/emnosys/images/waves.png" alt="">
    </div>
</body>
</html>

当我转到浏览器,转到个人页面的域(http://127.0.0.1:8000/personalpage/)时,我看到错误

Internal Server Error: /personalpage/
Traceback (most recent call last):
  File "D:\projects\EmNoSy\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner     
    response = get_response(request)
  File "D:\projects\EmNoSy\venv\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: __init__() takes 1 positional argument but 2 were given
[12/Nov/2023 13:06:02] "GET /personalpage/ HTTP/1.1" 500 59370

我不知道如何解决这个问题,这是非常奇怪的,我从来没有见过这样的问题

如果有人能帮助我,我将不胜感激

推荐答案

想在urls.py岁的你应该使用as_view()在课后的基础上看:

path('personalpage/', views.PersonalPage.as_view(), name='personalpage'),

Django相关问答推荐

Django REST framework:object has no attributed after annotation;Got attributeError when try to get a value for field field on serializer<>

DjangoAdmin与外部数据库的模型无法保存或过滤

Django prefetch_related 与 3 个不直接相关的模型

如何将数据(具体归档)从views.py 传递到models.py

Django 和 HTML 无法从指定时间开始视频

为什么在 Docker 映像中运行我的 Django 应用程序后下载属性不再起作用?

Django 模板文件夹

django 用一个提交按钮提交两种不同的表单

Django 基于角色的视图?

断开模型的信号并在 django 中重新连接

django 复数模板

Python/Django:从 values_list() 创建一个更简单的列表

Django模型字段按变量

settings.DATABASES 配置不正确使用 django 1.4 执行 syncdb 时出错

django admin 排序外键字段列表

ProgrammingError: 安装 Psycopg2 后,关系django_session不存在错误

Django:验证上传文件的文件类型

RemovedInDjango18Warning:不推荐创建没有fields属性或 exclude属性的 ModelForm

防止 django 管理员转义 html

获取'str'对象在Django中没有属性'get'