问题描述
我在 generic.views 上使用这个 Accessmixin:
class OrganisorAndLoginrequiredMixin(AccessMixin):
"""Verify that the current user is authenticated and is an organisor."""
def dispatch(self,request,*args,**kwargs):
if not request.user.is_authenticated or not request.user.is_organisor:
return redirect("home")
return super().dispatch(request,**kwargs)
我想在 def 上使用它。我试过了,但出现以下错误。
@OrganisorAndLoginrequiredMixin()
def AgentUpdateView(request,pk):
obj = Agent.objects.filter(pk=pk).first()
if obj is None:
return render(request,"404.html",{
"Instance": pk
})
else:
form = AgentModelForm(instance=obj.user)
错误: 类型错误:'OrganisorAndLoginrequiredMixin' 对象不可调用
解决方法
您需要为此使用 class based view:
from django.views.generic.edit import UpdateView
class AgentUpdateView(OrganisorAndLoginRequiredMixin,UpdateView):
model = Agent
template_name = 'template.html'
form_class = AgentModelForm