2010-04-25 3 views
3

장고 1.0.2를 사용하고 @login_required가 올바르게 작동하는 방법을 파악하려고합니다.django는 기본 LOGIN_URL을 사용할 때 SCRIPT_NAME을 고려합니다.

기본 제공 서버를 사용할 때 기본 login_url 또는 settings.py에 정의 된대로 LOGIN_URL로 리디렉션됩니다.

내 사이트가 루트에 있지 않은 서버에 배포하는 방법이 분명하지 않습니다. 내 템플릿에서는 url 템플릿 태그를 사용하고 request.META [ 'SCRIPT_NAME']에 액세스 할 수있는 뷰에서 어떤 이유로 LOGIN_URL에 적용되지 않는 것으로 보입니다.

무엇이 누락 되었습니까?

감사합니다.

답변

2

FORCE_SCRIPT_NAME이라는 설정이 있습니다.이 설정은 루트 디렉토리에서 호스팅되지 않은 경우 스크립트의 위치를 ​​설정하는 데 사용해야합니다. 당신은 로그인/로그 아웃 URL을 추가 할 수 있습니다 :

# This is needed because we're running the app in non-root directory of web server 
FORCE_SCRIPT_NAME = '/myapp.cgi/' 

LOGIN_URL = FORCE_SCRIPT_NAME + 'accounts/login/' 
LOGOUT_URL = FORCE_SCRIPT_NAME + 'accounts/logout/' 

참조 : https://docs.djangoproject.com/en/dev/ref/settings/#force-script-name

관련 문제