Używam VirtualenV i chcę wiedzieć, co powinno być TEMPLATE_DIRS settings.py} w settings.py.

8
weaveoftheride 14 sierpień 2012, 20:06

5 odpowiedzi

Najlepsza odpowiedź

Musisz określić bezwzględną ścieżkę do folderu szablonu. Zawsze używaj cięcia do przodu, nawet w systemie Windows.

Na przykład, jeśli folder projektu jest "/ Home / Djangouser / Projekty / MyProject" (Linux) lub "C: Projekty MyProject" (Windows), Twoja szablon_dirs wygląda tak:

    # for Linux
    TEMPLATE_DIRS = (
        '/home/djangouser/projects/myproject/templates/',
    )

    # or for Windows; use forward slashes!
    TEMPLATE_DIRS = (
        'C:/projects/myproject/templates/',
    )

Alternatywnie możesz użyć określonej zmiennej project_root i generować ścieżkę bezwzględną, dołączając do niej ze względną ścieżką do folderu szablonu. Ma to tę zaletę, którą musisz zmienić projekt_root, jeśli skopiujesz projekt do innej lokalizacji. Musisz zaimportować moduł OS, aby to działać:

# add at the beginning of settings.py
import os

# ...

TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates/'),
)
18
eminor 14 sierpień 2012, 17:03

Jeśli używasz Django 1.9, zaleca się używanie base_dir zamiast project_dir.

# add at the beginning of settings.py
import os

# ...

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates/'),
)
1
buttercup 30 wrzesień 2016, 06:22

Dodawanie tego w sieci / Ustawienia.py rozwiązywają wszystko dla mnie. Mam nadzieję, że też może ci pomóc.

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
from os.path import join
TEMPLATE_DIRS = (
    join(BASE_DIR,  'templates'),
)
-1
ninyesiga 25 luty 2017, 12:40

Jeśli pracujesz z nowszą wersją Django, możesz dodać go do listy DIR, która jest wewnątrz ustawień.py w szablonach.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['[project name]/templates'], # Replace with your project name
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
14
BFunk 20 październik 2016, 04:22

Projekt_dir nie został zdefiniowany ... Project_dir nie jest zmienną. Jest to katalog / ścieżka, do której znajduje się folder "szablony". To powinno pomóc

import os
PROJECT_DIR = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_DIRS = os.path.join(PROJECT_DIR, 'templates')
2
Transformer 28 listopad 2014, 15:16