Django app works fine, but getting a TEMPLATE_* warning message
Asked Answered
B

5

40

When I use runserver, it gives this warning message:

(1_8.W001) The standalone TEMPLATE_* settings were deprecated in Django 1.8 and the TEMPLATES dictionary takes precedence. You must put the values of the following settings into your default TEMPLATES dict: TEMPLATE_DEBUG.

Quoth the Django Documentation:

"TEMPLATE_DEBUG Deprecated since version 1.8: Set the 'debug' option in the OPTIONS of a DjangoTemplates backend instead."

Here is my settings.py with my futile attempts to fix it:

DEBUG = True

TEMPLATE_DEBUG = DEBUG

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'myapp/templates')],
        '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',
            ],
            'debug': DEBUG,
            'DEBUG': DEBUG,
            'TEMPLATE_DEBUG': DEBUG
        },
    }, ]

What am I missing here?

Brocatel answered 7/9, 2015 at 20:57 Comment(3)
It's just a message. It's recommending you do not use TEMPLATE_DEBUG.Fortissimo
@Fortissimo Thank you. What is the correct way to enter this value in the TEMPLATES dict? I just commented out the lines I added to the dict and debug seems to work fine. Is it really even necessary to add anything to this dict?Brocatel
It is necessary if you want to keep your code up to date. @Alasdair has given you a good answer.Fortissimo
H
89

Set debug in OPTIONS dictionary of your templates settings.

DEBUG = True

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'debug': DEBUG,
        },
    },
]

Then remove this line from your settings to stop the warnings

TEMPLATE_DEBUG = DEBUG

See the Django docs for detailed instructions how to update your template settings.

Hagberry answered 7/9, 2015 at 21:7 Comment(0)
V
15

remove APP_DIRS and add the loaders inside the templates. example:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        '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',
            ],
            'loaders': [
               'django_jinja.loaders.AppLoader',
                'django_jinja.loaders.FileSystemLoader',
            ]
        },
    },
]
Valeta answered 6/1, 2016 at 22:12 Comment(0)
L
14

From settings.py remove all this:

    TEMPLATE_DIRS = (
        os.path.join(BASE_DIR,  'templates'),
    )

Then add 'templates' here:

    TEMPLATES = [
    {
        ...
        'DIRS': [here],
        ...
            ],
        },
    },
]
Lovelace answered 22/12, 2015 at 20:8 Comment(0)
M
8

This is the best solution:

Change this line to:

TEMPLATES[0]['OPTIONS']['debug'] = True

which should fix the warning.

I have found it here.

Manipur answered 12/10, 2015 at 17:55 Comment(1)
Change this line to: "TEMPLATES[0]['OPTIONS']['debug'] = True" in <project name>/settings/dev.pyManipur
A
1

In my setting.py in django, there is not this script :

TEMPLATE_DEBUG = DEBUG

and

'debug': DEBUG, 'DEBUG': DEBUG, 'TEMPLATE_DEBUG': DEBUG

Maybe you can try to remove them and run it again.

Accentor answered 7/9, 2015 at 22:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.