Je suis en train d'écrire un « personnel que » décorateur pour Django, mais je ne peux pas sembler le faire fonctionner:Django: décorateur personnel
def staff_only(error='Only staff may view this page.'):
def _dec(view_func):
def _view(request, *args, **kwargs):
u = request.user
if u.is_authenticated() and u.is_staff:
return view_func(request, *args, **kwargs)
messages.error(request, error)
return HttpResponseRedirect(request.META.get('HTTP_REFERER', reverse('home')))
_view.__name__ = view_func.__name__
_view.__dict__ = view_func.__dict__
_view.__doc__ = view_func.__doc__
return _view
return _dec
Essayer de follow lead from here. Je reçois:
'WSGIRequest' object has no attribute '__name__'
Mais si je prends ces 3 lignes, je juste obtenir un inutile "Internal Server Error". Qu'est-ce que je fais mal ici?
Oh ... alors comment je contourne ça? – mpen
Je commence à comprendre, donc si j'ai plusieurs fonctions à mon avis, je dois ajouter @staffonly devant chacun d'entre eux? –