2015-04-29 3 views
2

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

dsbg/ 
    manage.py 

    dsbg/ 
    __init__.py 
    urls.py 
    wsgi.py 

    app1/ 
    __init__.py 
    models.py 
    views.py 
    urls.py 

    app2/ 
    __init__.py 
    models.py 
    views.py 
    urls.py 

    settings/ 
    base.py 
    local.py 
    prod.py 

    static/ 
     app1/ 
      images/ 
       background.gif 
      style.css 

    templates/ 
     home.html 
     app1/ 
      detail.html 
      index.html 
     app2/ 
      detail.html 
      index.html 

Я следовал процедуре here, но я не уверен, что я делаю правильные вещи (их пример имеет только одно приложение: опросы). Я сделал следующее:

  • перемещать приложения + статические шаблоны + каталоги в новом каталоге Джанго-dsbg (сохраняя dsbg и настройки в корне)
  • в Джанго-dsbg, создать файл setup.py, указав пакеты файлов (app1 и app2) и создать MANIFEST.in для включения статических и шаблонных каталогов.
  • в Джанго-dsbg, запустите:

    python setup.py sdist 
    
  • в родительском каталоге Джанго-dsbg, запустите:

    pip install --user django-dsbg/dist/django-dsbg-0.1.tar.gz 
    

После этого, проект выглядит следующим образом:

dsbg/ 
    manage.py 

    settings/ 
    base.py 
    local.py 
    prod.py 

    dsbg/ 
    __init__.py 
    urls.py 
    wsgi.py 

    django-dsbg/ 
    LICENSE 
    MANIFEST.in 
    README.rst 
    app1/ 
     models.py 
     views.py 
     urls.py 
    app2/ 
     models.py 
     views.py 
     urls.py 
    templates/ 
     home.html 
     app1/ 
     ... 
     app2/ 
     ... 
    static/ 
     ... 

Теперь в корневом каталоге (топ dsbg), я пытаюсь запустить сервер:

python manage.py runserver --settings=settings.local 

Сервер начинает хорошо, но при наведении на локальном хосте, браузер говорит: файл

TemplateDoesNotExist at/home.html. 
... 
Python Path: ['/home/patrick/django/dsbg/dsbg', 
       ... 
       '/home/patrick/.local/lib/python2.7/site-packages'] 

Этот home.html расположен в django- dsbg/шаблоны. Ни в каталогах dsbg/dsbg ни .local/lib/python2.7/site-packages не содержится home.html. Последний содержит все мои приложения, но не статический или каталог шаблонов.

Что я делаю неправильно? Кто-нибудь может мне помочь? Любая помощь очень ценится. Patrick

ответ

0

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

TEMPLATES_DIRS = ('/home/user/dsbg/django-dsbg/templates',) 

или

# Django 1.8 + 
Dirs = ['templates'] 
+0

Я пробовал, тот же результат. Я подозреваю, что, возможно, что-то не так с моей новой структурой проекта. По-вашему, это нормально (настройки, dsbg и django-dsbg на одном уровне)? Примечание: он работал с исходной структурой, прежде чем я попытался упаковать свой проект; Я имею в виду, что не было проблем с поиском шаблонов. – Patrick

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