Ошибка атрибута: объект ‘function’ не имеет атрибута ‘as_view’, в urls.py

#python #django #web #django-views

#python #django #веб #django-представления

Вопрос:

Я написал эту логику в своем views.py , и я использовал представления на основе классов, детальный просмотр:

 @login_required
class profileView(DetailView):
    model = profile
    template_name = "users/profile.html"
 

и в urls.py файл Я написал это:

 from django.urls import path,include
from . import views
from .views import profileView

urlpatterns = [
    path('register/',views.register,name="register"),
    path('login/',views.login_user,name="login_user"),
    path('profile/',profileView.as_view(),name="profile_view"),
]
 

версия django, которую я использую, — 3.1, а версия python — 3.8.

Я надеюсь, что у кого-то есть ответ на мой вопрос.

Ответ №1:

Вы не можете использовать @login_required для представления на основе классов, поскольку это возвращает функцию. Вы используете LoginRequiredMixin [Django-doc]:

 from django.contrib.auth.mixins import LoginRequiredMixin

class profileView(LoginRequiredMixin, DetailView):
    model = profile
    template_name = 'users/profile.html'