다음과 같은 장식 자 및보기가 제대로 작동합니다.Django가 장식 자에 선택적 인수를 추가합니다.
실내 장식
def event_admin_only(func):
"""
Checks if the current role for the user is an Event Admin or not
"""
def decorator(request, *args, **kwargs):
event = get_object_or_404(Event, slug=kwargs['event_slug'])
allowed_roles = [role[1] for role in Role.ADMIN_ROLES]
# get user current role
current_role = request.session.get('current_role')
if current_role not in allowed_roles:
url = reverse('no_perms')
return redirect(url)
else:
return func(request, *args, **kwargs)
return decorator
보기
@event_admin_only
def event_dashboard(request, event_slug:
그러나 나는 그렇게 같이 추가 매개 변수에 취하도록 내 장식을 수정하는 방법 :
@event_admin_only(obj1,[...])
def event_dashboard(request, event_slug:
[매개 변수의 유무에 상관없이 사용할 수있는 파이썬 장식을 만드는 방법] (http://stackoverflow.com/questions/653368/how-to-create-a-python-decorator- -with-with-without-parametre) – DrTyrsa