template_dirs مفقود في الإعدادات. بي (Django 1.6)

StackOverflow https://stackoverflow.com/questions/20353880

  •  25-08-2022
  •  | 
  •  

سؤال

انا اقرأ 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',
            ],
        },
    },
]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top