Представления, отображающие «общие» шаблоны там, где они должны быть (home. html, about. html, et c)? | Django - PullRequest
0 голосов
/ 12 января 2020

У меня есть шаблоны, например, home.html, about.html, et c. Какие из них являются «общими»?

Где должны находиться виды, отображающие эти виды?

Я не убежден, что эти представления следует размещать в приложениях моего проекта, поскольку каждый из них имеет очень конкретная c цель. Мне приходит в голову создать приложение специально для этих «общих» представлений, но как это приложение должно называться? Это хорошая практика?


Другое решение - поместить представления в urlconf следующим образом:

from django.contrib import admin
from django.urls import path, include
from django.views.generic import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),

    path('', TemplateView.as_view(template_name = 'pages/home.html'), name = 'home'), # here
    ...
]

Но является ли это альтернативой хорошей практики? Есть ли намного лучшая альтернатива?

1 Ответ

0 голосов
/ 12 января 2020

Просто поместите их в свое глобальное приложение. Предположим, мое Django имя проекта - project_name, и у меня есть приложение с именем tasks. Вот что я бы сделал:

~/projects/projects_name/

project_name/       # project dir (the one which django-admin.py creates)
    ...
  settings/         # settings for different environments, see below
    __init__.py
    ...
  views.py         # Put here global views (home, etc.)
  urls.py
  wsgi.py
  static/             # site-specific static files
  templates/          # site-specific templates
    project_name/
      home.html
      about.html
  tests/              # site-specific tests (mostly in-browser ones)
...


tasks/
    ...
    static/             # tasks app-specific static files
    templates/          # tasks app-specific templates
...