即使它是基于 calss 的 func 為什么當我使用 login_required 時會彈出此屬性錯誤
錯誤資訊
path('active/<int:pk>', UpdateActiveStatus.as_view(), name="activeStatus"),
AttributeError: 'function' object has no attribute 'as_view'
視圖.py
@login_required(login_url='/admin/')
class UpdateActiveStatus(UpdateView):
model = FutsalTimeline
form_class = UpdateActiveStatus
template_name = 'timeline.html'
success_url = reverse_lazy('timeline')
uj5u.com熱心網友回復:
你不能使用@login_required裝飾器 [Django-doc]:這個裝飾器回傳一個函式,但即使使用該函式也不起作用:裝飾器根本無法處理一個類。
對于基于類的視圖,您可以使用LoginRequiredMixin[Django-doc]:
from django.contrib.auth.mixins import LoginRequiredMixin
class UpdateActiveStatus(LoginRequiredMixin, UpdateView):
model = FutsalTimeline
form_class = UpdateActiveStatus
template_name = 'timeline.html'
success_url = reverse_lazy('timeline')
login_url = '/admin/'
uj5u.com熱心網友回復:
我認為這個問題是為裝飾器生成的。只需改變它 - >
@method_decorator(login_required, name='dispatch')
class UpdateActiveStatus(UpdateView):
model = FutsalTimeline
form_class = UpdateActiveStatus
template_name = 'timeline.html'
success_url = reverse_lazy('timeline')
你可以在這里找到檔案
但是您應該使用Mixin 類。使用Mixin 類它看起來像
from django.contrib.auth.mixins import LoginRequiredMixin class UpdateActiveStatus(LoginRequiredMixin, UpdateView): model = FutsalTimeline form_class = UpdateActiveStatus template_name = 'timeline.html' success_url = reverse_lazy('timeline')
你可以在這里找到檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/400930.html
標籤:姜戈 django-views
上一篇:Django視圖回傳資料
下一篇:處理bash腳本中的特殊字符
