أضف إلى الإعدادات
from os.path import join
TEMPLATE_DIRS = (
join(BASE_DIR, 'templates'),
)
سؤال
انا اقرأ http://www.djangobook.com/en/2.0/chapter04.html الذي يتبع Django 1.4 ولكني أستخدم Django 1.6 ، لذا كيفية تعيين دليل القالب في Django 1.6 كإعدادات. لا يوجد لديه متغير template_dirs ولماذا غير المطورين هذا؟ شكرا مقدما.
المحلول
أضف إلى الإعدادات
from os.path import join
TEMPLATE_DIRS = (
join(BASE_DIR, 'templates'),
)
نصائح أخرى
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
أضف هذا إلى settings.py
. في Django 1.6 BASE_DIR
ويعرف. خلاف ذلك تحديد BASE_DIR
كما
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
وفقًا لبرنامج Django Tutorial ، يجب عليك إضافةTEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
لك الإعدادات ملف (لذلك هو ملف list
ليس أ tuple
)
يجب أن يكون
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
أو قد ترى خطأ مثل هذا:
deprecationwarning: يجب أن يكون إعداد template_dirs عبارة عن tuple. يرجى إصلاح الإعدادات الخاصة بك ، حيث يتم الآن إهمال التصحيح التلقائي.
self._wrapped = الإعدادات (الإعدادات _module)
ل django> = 1.6 هو أ tuple
استخدم مقتطف رمز معين أدناه. الصق في آخر ملف settings.py.
from os.path import join
TEMPLATE_DIRS = (
join(BASE_DIR, 'templates'),
)
هنا BASE_DIR
يعني دليل المشروع الخاص بك ، وليس الدليل الداخلي حيث توجد الإعدادات. قم بإنشاء دليل يسمى "قوالب" (بدون اقتباسات) داخل BASE_DIR
وتخزين القوالب الخاصة بك داخل هذا الدليل. سينضم Django إلى دليل القوالب إلى BASE_DIR
استخدام os.path.join()
وظيفة. أتمنى أن يساعدك هذا.
كما نشرت https://stackoverflow.com/a/40145444/6333418 يجب عليك إضافتها إلى قائمة DIR الموجودة داخل الإعدادات.
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',
],
},
},
]