Django 의 내장 authentication 모듈을 사용하지 않는 경우, 직접 제작을 해야 하는데, login_required 라는 데코레이터가 없어서, 매번 View 에서 접근 로직을 작성해주어야 해서 번거로웠다. 아래와 같이 별도의 데코레이터를 작성해두면 로직이 바뀌더라도 하나만 변경하면 되니까 코드 관리가 좀 더 편할 것이다.
def login_required(function=None):
def _dec(view_func):
def _view(request, *args, **kwargs):
# 아래 로직을 적당히 자신의 사이트에 맞게 고쳐서 쓰면 될 것이다.
if "login_yn" not in request.session:
return HttpResponseRedirect('/')
else:
return view_func(request, *args, **kwargs)
_view.__name__ = view_func.__name__
_view.__dict__ = view_func.__dict__
_view.__doc__ = view_func.__doc__
return _view
if function is None:
return _dec
else:
return _dec(function)
'Framework > Django' 카테고리의 다른 글
(Django) Template에서 Session값 이용하기 (0) | 2013.09.21 |
---|---|
'쉽고 빠른 웹개발 Django' 버전 1.4 이상에서 진도나가기 (0) | 2012.12.20 |
Django 1.4 에서 Template 디렉토리 설정 (0) | 2012.04.09 |
Django 마이그레이션 1.3.1 -> 1.4 (0) | 2012.03.27 |
Debian/Ubuntu + NginX + trunserver + Django 1.3.1 + Python 2.7.2 (0) | 2011.12.20 |