Ответ 1
С помощью представлений класса в более новых версиях Django можно использовать это в urls.py:
from django.views.generic import TemplateView
url(r'^about',
TemplateView.as_view(template_name='path/to/about_us.html'),
name='about'),
Я хочу сделать статическую страницу, которая будет показана пользователю, только если он/она нажимает на ссылку, предоставленную в одной из моих моделей. Я могу сделать это, создав одну страницу Python и вызывая ее, но я хочу, чтобы она вызывалась из Django. Пользовательский интерфейс должен быть построен с использованием только API Django.
Какие-либо предложения?
С помощью представлений класса в более новых версиях Django можно использовать это в urls.py:
from django.views.generic import TemplateView
url(r'^about',
TemplateView.as_view(template_name='path/to/about_us.html'),
name='about'),
Обходя представления для статического шаблона, добавьте эту строку в "urls.py". Например, страница "О нас" может быть
(r'^about', 'django.views.generic.simple.direct_to_template', {'template': 'path/to/about_us.html'}),
Вы имеете в виду что-то вроде Django flatpages app? Он делает именно то, что вы описываете.
Если вы хотите сделать статическую страницу flatpages, это хороший выбор. Это позволяет вам легко создавать статический контент. Создание статического контента не сложнее, чем создание представления.
На Django 2.2.6, слегка следуя ответу Дэвида, я добавил путь в urls.py:
from django.views.generic import TemplateView
urlpatterns = [
.... .... ....
path('about',
TemplateView.as_view(template_name='path/to/about_us.html'),
name='about'),
И мне нужно было настроить settings.py, чтобы указать каталог шаблонов:
TEMPLATES = [{
... ... ...
'DIRS': [os.path.join(BASE_DIR, 'template')],
Затем я сохранил фактический контент в template/path/to/about_us.html