Подтвердить что ты не робот

Статическая страница Django?

Я хочу сделать статическую страницу, которая будет показана пользователю, только если он/она нажимает на ссылку, предоставленную в одной из моих моделей. Я могу сделать это, создав одну страницу Python и вызывая ее, но я хочу, чтобы она вызывалась из Django. Пользовательский интерфейс должен быть построен с использованием только API Django.

Какие-либо предложения?

4b9b3361

Ответ 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'),

Ответ 2

Обходя представления для статического шаблона, добавьте эту строку в "urls.py". Например, страница "О нас" может быть

(r'^about', 'django.views.generic.simple.direct_to_template', {'template': 'path/to/about_us.html'}),

Ответ 3

Вы имеете в виду что-то вроде Django flatpages app? Он делает именно то, что вы описываете.

Ответ 4

Если вы хотите сделать статическую страницу flatpages, это хороший выбор. Это позволяет вам легко создавать статический контент. Создание статического контента не сложнее, чем создание представления.

Ответ 5

На 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