Шаблон Django не существует на производственном сервере, но работает в: 8000 - PullRequest
0 голосов
/ 29 сентября 2011

Привет, ребята, у меня проблема с моим собственным сервером django (дома), django не может найти шаблоны, мой код ошибки django ищет в правильном месте (/ var / www / project / templates), но ничего не происходит

Шаблон не существует , но все пути в порядке.

, но с использованием тестового сервера: 8000 все в порядке, я не знаю, как плохо это исправить

edit

идеально подходит для получения шаблона:

/var/www/agricultura/templates/forms/registro_form.html

Путь к шаблону

import os
TEMPLATE_DIRS = (
     os.path.join(os.path.abspath(os.path.dirname(__file__)),'templates'),
)

Template Loader Error:
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/var/www/agricultura/templates/forms/registro_form.html (File does not exist)
Using loader django.template.loaders.app_directories.Loader:
/usr/local/lib/python2.6/dist-packages/admin_tools/theming/templates/forms/registro_form.html (File does not exist)
/usr/local/lib/python2.6/dist-packages/admin_tools/menu/templates/forms/registro_form.html (File does not exist)
/usr/local/lib/python2.6/dist-packages/admin_tools/dashboard/templates/forms/registro_form.html (File does not exist)
/usr/local/lib/python2.6/dist-packages/django/contrib/admin/templates/forms/registro_form.html (File does not exist)
Using loader django.template.loaders.eggs.Loader:



Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/var/www/agricultura/registro/views.py" in registro_view
  71.                           context_instance=RequestContext(request))
File "/usr/local/lib/python2.6/dist-packages/django/shortcuts/__init__.py" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in render_to_string
  181.         t = get_template(template_name)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in get_template
  157.     template, origin = find_template(template_name)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in find_template
  138.     raise TemplateDoesNotExist(name)

Exception Type: TemplateDoesNotExist at /registro/
Exception Value: forms/registro_form.html

Есть идеи?

спасибо

Ответы [ 3 ]

0 голосов
/ 25 июня 2012

Добавьте это в ваш файл настроек:

def findMyWay(*relativeComponents):
    return os.path.join(os.path.dirname(__file__), *relativeComponents).replace("\\","/")

TEMPLATE_LOADERS = (
    "django.template.loaders.filesystem.Loader",
    "django.template.loaders.app_directories.Loader",
)

TEMPLATE_DIRS = (
    findMyWay("templates"),
)

Прекрасно работает для меня.

0 голосов
/ 08 января 2015

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

0 голосов
/ 29 сентября 2011

в шаблоне может быть ошибка.У вас есть TEMPLATE_DEBUG = True в настройках?И вы также установили TEMPLATE_DIRS?

Попробуйте загрузить шаблон через оболочку python на вашем сервере:

https://docs.djangoproject.com/en/dev/ref/templates/api/#the-render-to-string-shortcut

./manage.py shell
from django.template.loader import render_to_string
rendered = render_to_string('my_template.html', { 'foo': 'bar' })

Это может вызвать ошибку и дать вам дополнительную подсказку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...