ich staff_member_required Mixins umzusetzen versuchen:Django Mixins für klassenbasierte-generic Ansichten
Hier sind die beiden Möglichkeiten, wie ich auch gefunden, wie dies zu tun:
Erstens:
class StaffRequiredMixin(object):
@method_decorator(login_required)
def dispatch(self, request, *args, **kwargs):
if not request.user.is_staff:
messages.error(
request,
'You do not have the permission required to perform the '
'requested operation.')
return redirect(settings.LOGIN_URL)
return super(StaffRequiredMixin, self).dispatch(request,
*args, **kwargs)
Zweitens:
class StaffRequiredMixin(object):
@classmethod
def as_view(self, *args, **kwargs):
view = super(StaffRequiredMixin, self).as_view(*args, **kwargs)
return staff_member_required(view)
@method_decorator(login_required)
def dispatch(self, request, *args, **kwargs):
if not request.user.is_staff:
messages.error(
request,
'You do not have the permission required to perform the '
'requested operation.')
return redirect(settings.LOGIN_URL)
return super(StaffRequiredMixin, self).dispatch(request,
*args, **kwargs)
Was will ich wissen, ist:
Warum überschreibt die zweite Methode die
as_view()
Methode und umhüllt sie mitstaff_member_required
?Erhalten wir dadurch irgendwelche "zusätzlichen" Vorteile?
Ich bin neu bei diesen Mixins. Bitte helfen Sie.