Резюме:
Скажем, у меня есть проект в Django под названием "devsite", который будет развернут сначала в промежуточном проекте (также называемом "devsite") и, наконец, в живую кодовую базу (где проект называется "liveite"). Во время развертывания в реальном времени мне пришлось бы вручную вносить изменения в urls.py, чтобы импортировать представления из нужного проекта. Это означает, что urls.py в "devsite" будет использовать что-то вроде:
from devsite import views
И urls.py для "liveites" будет изменен на:
from livesite import views
Мое решение:
Кажется, работает следующее (пока ограниченное тестирование). Я создал переменную settings.py для получения имени проекта из каталога, например:
settings.py
# /settings.py
import os.path
PROJECT_NAME = os.path.basename(os.path.dirname(__file__))
А затем используйте это для импорта правильных представлений в urls.py:
urls.py
# /urls.py
from django.conf import settings
website = __import__('%s' % settings.PROJECT_NAME, fromlist=['views'])
...
urlpatterns = patterns('',
(r'^monty/$', website.views.monty),
)
Мой вопрос:
Я хотел бы знать следующее:
- Это хороший способ делать то, что я хочу, или есть лучший способ кодировать это?
- Или мне нужно переосмыслить весь рабочий процесс развертывания?
Заранее спасибо.