Как обслуживать папку `Docs` в Django, которая содержит статические html-файлы? - PullRequest
1 голос
/ 12 апреля 2019

У меня следующая структура кода в Django.

├── docs
│   └── _build
│       ├── doctrees
│       └── html
│           └── index.html
│    
├── localcoinswap
├── scripts
├── _static
├── _templates
├── tests
└── manage.py

Здесь папка docs содержит статические html-файлы .т.е. index.html

Вот несколько вопросов, касающихся проблемы:

  1. html-папка docs должна быть указана как URL <domain>/docs/index.htmlв Django проекте.Как этого добиться

  2. Это должно быть ограничено пользователями, имеющими is_staff атрибут True.

Что urlpattern следует мнеиспользовать и который View полезен для обслуживания этих статических файлов ( Администратор ограничен )?

Заранее спасибо!

1 Ответ

1 голос
/ 12 апреля 2019

Добавьте базовый каталог для ваших документов в настройках TEMPLATES в settings.py.

TEMPLATES = [
    {
        ...
        'DIRS': [os.path.join(BASE_DIR, '_templates'), "add your base directory here"],
        ...
    }
]

В вашем urls.py обслуживайте файлы, используя TemplateView.Чтобы еще больше ограничить URL-адрес только пользователями, вы можете обернуть представление в staff_member_required декораторе.

from django.contrib.admin.views.decorators import staff_member_required
...

urlpatterns += [url(r'^docs/index\.html$', staff_member_required(TemplateView.as_view(template_name='index.html')), name="index"),]

Убедитесь, что имена файлов для ваших шаблонов и шаблонов документов не конфликтуют, иначе первыйоценка всегда выполняется согласно списку DIR.

...