2010-06-16 9 views
1

디버그 (DEBUG = True)를 활성화하고 싶습니다. 내 장고 프로젝트는 localhost에서만 실행됩니다. settings.py에서 사용자 IP 주소를 얻으려면 어떻게해야합니까? 이 같은 일이 일하고 싶습니다 :Django : settings.py 내의 원격 IP 주소 얻기

#Debugging only on localhost 
if user_ip = '127.0.0.1': 
    DEBUG = True 
else: 
    DEBUG = False 

어떻게 settings.py 파일 내부에 user_ip 변수에 사용자의 IP 주소를 배치해야합니까? http://docs.djangoproject.com/en/dev/ref/settings/#setting-INTERNAL_IPS

+0

zefciu의 응답을 사용; 하나의 메모 - 나에게 그것은 귀하의 질문에 당신이 클라이언트 ip 및 django에 바인딩 된 IP를 혼합하는 것 같다. – Unreason

+0

클라이언트 IP를 의미합니다. 우리가 일반적으로 요청을 사용하여 얻는 것. META [ 'REMOTE_ADDR'] –

답변

5

는 아마 충분하다.

import socket 

print socket.gethostbyname_ex(socket.gethostname())[2] 

편집 : 아, 나는 주제를 오해하고 있었다.

3

사용이 : 일부 INTERNAL_IPS를 지정하는

0

법안을 맞는 것 같다 당신이

class LazyDebugSetting(object): 
    def __init__(self): 
     self.value = None 
    def __nonzero__(self): 
     if not self.value: 
      # as emre yilmaz say 
      user_ip = socket.gethostbyname_ex(socket.gethostname())[2] 
      self.value = user_ip == '127.0.0.1' 
     return self.value 
    __len__ = __nonzero__ 

DEBUG = LazyDebugSetting() 

의 settings.py이 시도하지만 더 INTERNAL_IPS

를 사용하거나 환경 변수를

DEBUG = os.environ.get('DEVELOP_MODE', False) 
관련 문제