首页 > 解决方案 > 如何在 url.py 中定义基于类的视图

问题描述

我为登录和注销创建了一个基于类的视图,当使用 .as_view() 调用时它工作得很好,但是如果我对另一个应用程序使用相同的视图,它给我的函数对象没有属性 as_view

创建了一个基于类的视图将其添加到 url.py 创建了新的应用程序->模型->表单->基于类的视图

secondApp/views.py

from django.http import HttpResponse
from django.shortcuts import render, redirect
from django.core.mail import send_mail, EmailMessage, BadHeaderError
from django.template.loader import render_to_string
from django.contrib.sessions.models import Session
from django.views.generic import CreateView, View
from django.conf import settings

from .forms import *
from .models import *
from login.models import User
class addDirector(CreateView):
    form_class = addDirectorMultiForm
    template_name = 'admin/add_director_account.html'
    success_url = 'administrator/'

    def form_valid(self, form):
        user = form['user'].save()
        profile = form['profile'].save()
        return redirect(self.success_url)

网址.py

from administrator import views
urlpatterns = [
    path('admin/', admin.site.urls),

    #accounts
    path('accounts/', include('django.contrib.auth.urls')),
    path('', HomeView.as_view(), name='home'),
    path('accounts/login', LoginView.as_view(), name = 'LoginView'),

    # Admin 
    path('administrator/', views.admin_home_view, name = 'admin_home_view'),
path('administrator/add_director', views.addDirector.as_view(), name = 'addDirector'),
]

错误信息:

path('administrator/add_director', views.addDirector.as_view(), name = 'addDirector'),
AttributeError: 'function' object has no attribute 'as_view'

标签: djangodjango-modelsdjango-formsdjango-templatesdjango-views

解决方案


推荐阅读