2010-10-05 3 views
1

Недавно я установил решение для развертывания для своего проекта Django, используя Fabric. Основной рабочий процесс:Импорт из проекта Django с другим именем папки верхнего уровня

  1. Проверьте последний источник от git на сервере.
  2. Скопируйте его в директорию 'релизы' и добавьте временную метку к названию каталога.
  3. Обновить символическую ссылку 'current', чтобы указать на последнюю сборку.

Это работает просто отлично, единственная проблема, так как каталог верхнего уровня является символическая называется «текущий» и что указывает на папку, как «project_name_2010_10_04» ВСЕ из следующих утверждений импорта не удастся:

from project_name.app import models 

...

INSTALLED_APPS = (
    'project_name.app' 
) 

...

urlpatterns = patterns('', 
    (r'^$', 'project_name.app.views.index'), 
) 

Итак, решение, которое я нашел, заключается в удалении КАЖДОЙ отдельной ссылки на «имя_проекта» в моем проекте, и приложение, похоже, развертывается и работает отлично (на данный момент). Но это не похоже на правильный способ решить проблему ... главным образом потому, что во вновь созданном проекте Django «urls.py», «settings.py» все ссылаются на имя проекта по умолчанию, а также на различные описания документации Django используя название проекта для разных вещей.

Итак, чтобы подвести итог моей проблеме, существует ли способ указать имя пакета, которое отличается от фактического имени каталога?

+0

Я думаю, вы должны быть импортирование 'от app' начать с. Приложения предназначены для повторного использования, и нет смысла связывать их с каким-либо одним проектом. –

ответ

4

Проще говоря, вы действительно не должны использовать свое название проекта в любом месте, особенно в конкретных приложениях, поскольку оно просто полностью нарушает их переносимость и повторное использование.

0

Кажется, что у вас есть manage.py, urls.py и друзья прямо в корне вашего хранилища.

Это не так: на высшем уровне, должно быть setup.py, requirements.txt и каталог проекта, внутри которого manage.py и друзья должны жить.

(OK, если Вы хотите быть более совместимым с непитоновским миром, он должен жить в директории верхнего уровня src/ ...)

Смежные вопросы