2013-07-24 2 views
0

} views.py에서 올바른 환경 별 루트 URL을 참조해야합니다. 여기 상황이 있습니다. urllib2로 이미지를 포착하면서 Facebook에 이벤트 이미지를 게시하고 있습니다.Django에서 올바른 루트 URL보기 {{view.py

URL을 현재 환경에 맞게 동적으로 조정해야합니다. 내 솔루션 환경 변수를 기반으로 조건부를 사용하는 것입니다 (env 특정 데이터베이스 구성에 대한 settings.py 할). 따라서 내가 가지고있는 것 :

# Get appropriate, environment-specific root url for urllib call below. 
    try: 
     if os.environ['ENV'] == 'staging': 
      img_url = 'http://www.mysite.com/static/img/logo.png' 
    except: 
     img_url = 'http://localhost:8000/static/img/logo.png' 

    graph.post(
     path = fb_event_path, 
     source = urllib2.urlopen(img_url)) 

이것은 로컬 및 프로덕션 (즉, 준비 작업)에서 작동하지만 약간의 해킹을합니다. views.py에서 루트 URL로 변수를 설정하는 더 매끄러운 방법이 있어야합니다. 이게 뭐야? 감사.

DOMAIN = 'www.mysite.com' # Production DOMAIN  

if os.environ['ENV'] != 'staging': 
    DOMAIN = 'localhost:8000' # Dev DOMAIN 

을 아니면 settings_local.pyDOMAIN 당신의 settings.py

from settings_local import * 

의 말에이를 추가하고 정의 :

답변

1

그냥 같이 settings.py로 준비/dev에 로직을 숨길

DOMAIN = 'localhost:8000' 

마지막으로 당신의 경쟁에서 w :

from settings import DOMAIN, STATIC_URL 

img_url = 'http://{domain}/{static}/img/logo.png'.format(
    domain=DOMAIN, 
    static=STATIC_URL 
) 

graph.post(
    path = fb_event_path, 
    source = urllib2.urlopen(img_url) 
) 
관련 문제