/ / Ako môžem navrhnúť „základné veci“, ktoré by mohli aplikovať všetky aplikácie v django? - django

Ako môžem navrhnúť 'základné veci', ktoré by mohli aplikovať všetky aplikácie v django? - django

Chcem vytvoriť hlavnú stránku (main.html), kde môžem nasmerovať každú aplikáciu a chcem ju vytvoriť base.html ktorá bude základnou šablónou všetkých aplikácií jej rozšírením. To, čo som sa snažil urobiť, je ako nižšie;

my_project
├── app1
│   ├── migrations
│   ├── models.py
│   ├── static
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── app2
│   ├── migrations
│   ├── models.py
│   ├── static
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── my_project
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── db.sqlite3
├── main.css
├── main.html
├── base.html
├── manage.py
└── views.py

Ale nie som si istý, či je táto štruktúra správna. Prosím, dajte mi radu.

odpovede:

1 pre odpoveď č. 1

Mali by ste radšej umiestniť svoje šablóny do adresára šablón v koreňovom umiestnení, ako aj do zodpovedajúcich aplikácií, a potom v nastaveniach uviesť svoje šablóny:

TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": ["templates"],

tiež nastaviť

STATICFILES_DIRS = (os.path.join(BASE_DIR, "static_files"),)
STATIC_ROOT = os.path.join(BASE_DIR, "static", )
STATIC_URL = "http://yourdomain.com/static/"
MEDIA_ROOT = "./media/"
MEDIA_URL = "/media/"


STATICFILES_DIRS = (
./static_files,
)


STATICFILES_FINDERS = [
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
]

So the resulting structure is

yourproject+
|
+main.py
|
+templates+
|         |
+         +base.html (this is checked last)
|
+static_files+
|            |
|            +css
|            |
|            +js
|
+media+
|     |
|     +images
|
+yourproject+
|           |
|           +urls.py
|           |
|           +wsgi.py
|           |
|           +settings.py
|
+yourapp+admin.py
|
+models.py
|
+views.py
|
+tests.py
|
+templates+
|
+base.html (this is checked first)

Týmto spôsobom Django skontroluje všetky šablónyadresárov vo vašich aplikáciách a potom sa použijú šablóny koreňových umiestnení, ak sa v aplikáciách nenachádzajú žiadne podradené šablóny na načítanie bázy.html a akýchkoľvek dedičných šablón. Umiestnenie šablón html do samostatného adresára vám pomôže udržať dizajn čistý a oddelený zo zdrojového kódu a konfiguračných súborov.