В Django 1.7 я не могу предоставить собственный шаблон. Вместо этого он просто по умолчанию в django_tables2/table.html
Шаблон таблицы Django не найден
from django_tables2 import Table as BaseTable
class Table(BaseTable):
class Meta:
template = 'portal/base_table.html'
И моя структура папок:
apps/portal/
├── __init__.py
├── tables.py
├── templates
│ └── portal
│ ├── base.html
│ ├── base_portal.html
│ ├── base_table.html
│ └── home.html
В приведенном выше, шаблоны, такие как portal/base.html
устраняемых с помощью шаблона искатели.
Если я отказаться от мета-класс и вместо того, чтобы установить:
from django_tables2 import Table as BaseTable
class Table(BaseTable):
template = 'portal/base_table.html'
вместо этого я получаю ошибку TemplateDoesNotExist
, как это, кажется, пытается решить /data/www/apps/portal/templates/No template names provided
среди других.
Для дальнейшей поддержки, я думаю, что шаблон должен быть решение:
>>> render_to_response('portal/base_table.html')
<django.http.response.HttpResponse object at 0x7fa940c74690>
>>> render_to_response('portal/base_table.html2')
...
raise TemplateDoesNotExist(name)
TemplateDoesNotExist: portal/base_table.html2
Моего settings.py
файл содержит:
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
path = lambda *a: os.path.join(BASE_DIR, *a)
TEMPLATE_DIRS = (
path('templates'),
)
Это работает для всех остальных шаблонов таких, как для представлений. Не использует ли django-tables2 тот же метод поиска?
Несвязанный, но мне очень нравится эта функция 'path()', которую вы взломали. – rnevius
@rnevius, спасибо, довольно уверен, что я украл его откуда-то, хотя: D – DanH