すべての選択肢を保存し、アプリケーションで再利用するための単純なモジュールを作成しました(CharFieldの選択肢を参照)。
ここに私のプロジェクト構造
project_name/
-- manage.py
-- settings.py
-- ......
-- apps/
-- __init__.py
-- simple_app/
-- __init__.py
-- models.py
-- ....
-- common/
-- __init__.py
-- choices/
-- __init__.py
私のcommon.choices.__init__。pyの中に私は持っています
from django.utils.translation import ugettext as _
SCALE_TYPE_CHOICES = (
(1,_('Lineare')),
(2,_('Logaritmica')),
(3,_('Esponenziale'))
)
GENDER_CHOICES = (
('male',_('Maschio')),
('female',_('Femmina')),
('any',_('Tutti')),
)
およびapps.simple.models.py
from common.choices import SCALE_TYPE_CHOICES, GENDER_CHOICES
.....
私のpassenger_wsgi.py
import sys, os
sys.path.insert(0, os.getcwd())
sys.path.insert(0, os.path.join(os.getcwd(),"path_to_my_project"))
sys.path.insert(0, os.path.join(os.getcwd(),"path_to_my_project/common"))
os.environ['DJANGO_SETTINGS_MODULE'] = "project_name.settings"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
私の開発サーバーでは正常に動作しますが、本番サーバーでは「choicesという名前のモジュールがありません」というエラーがスローされます。
manage.pyシェル
import common
print common
<module 'common' from 'absolute_project_path/common/__init__.pyc'>
passenger_wsgi.py
import sys, os
sys.path.insert(0, os.getcwd())
sys.path.insert(0, os.path.join(os.getcwd(),"path_to_my_project"))
sys.path.insert(0, os.path.join(os.getcwd(),"path_to_my_project/common"))
os.environ['DJANGO_SETTINGS_MODULE'] = "project_name.settings"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
import common
print common
Outputs
<module 'common' from 'absolute_project_path/common/__init__.pyc'>
何か案は?
ありがとう!