내 REST API를 실행 사용자 정의 장식 :장고 : 장고 - 나머지 프레임 워크 인증 클래스 전에
class FileView(APIView):
parser_classes = (MultiPartParser,)
authentication_classes = (BasicAuthentication,)
permission_classes = (IsAuthenticated,)
@method_decorator(csrf_exempt)
@method_decorator(operation_logger)
def dispatch(self, request, *args, **kwargs):
return super(FileView, self).dispatch(request, *args, **kwargs)
def post(self, request):
print "xxxxpost"
사용자 정의 된 데코레이터 :
def operation_logger(view_func):
@wraps(view_func)
def wrapper(request, *args, **kwargs):
print "xxxx"
comments = []
psfile = None
op = None
remote_addr = request.META.get('REMOTE_ADDR')
if request.user:
user = request.user
print request.user.username
else:
print "request.user is None"
return view_func(request, *args, **kwargs)
return wrapper
이 인증이 완료되기 전에 내 장식이 실행 것으로 보인다. 그것을 고치는 방법? 감사합니다.
업데이트 아래에 내 미들웨어 목록을 추가했습니다. 그러나 내가 djangorestframework를 사용하는 API를위한 새로운 애플리케이션을 만들었 기 때문에 관련이 있는지 확신 할 수 없습니다.
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'lib.middleware.SessionTimeout',
'lib.middleware.ForceTemporaryPasswordChange'
)
미들웨어 주문이란 무엇입니까? http://simpleisbetterthancomplex.com/tutorial/2016/07/18/how-to-create-a-custom-django-middleware.html – Lucas03