0

views.py で、環境固有の正しいルート URL を参照する必要があります。これが状況です。urllib2 で画像を取得して、イベント画像を Facebook に投稿しています。

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 を使用して変数を設定するには、よりスマートな方法が必要です。それは何ですか?ありがとう。

4

1 に答える 1

1

ステージング/開発ロジックをsettings.py次のように隠すだけです:

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

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

または、これを末尾に追加しますsettings.py

from settings_local import *

そしてあなたの中で定義DOMAINしてくださいsettings_local.py

DOMAIN = 'localhost:8000'

そして最後にあなたの見解では:

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)
)
于 2013-07-24T15:05:27.570 に答える