validate_templates

synopsis

Checks templates on syntax or compile errors.

This will catch any invalid Django template syntax, for example:

{% foobar %}

{% comment %}
This throws this error:
TemplateSyntaxError Invalid block tag on line 1: 'foobar'. Did you forget to register or load this tag?
{% endcomment %}

Note that this will not catch invalid HTML, only errors in the Django template syntax used.

Options

verbosity

A higher verbosity level will print out all the files that are processed instead of only the ones that contain errors.

break

Do not continue scanning other templates after the first failure.

ignore-app

Ignore this app (can be used multiple times).

includes

Use -i (can be used multiple times) to add directories to the TEMPLATE DIRS.

no-apps

Do not automatically include app template directories.

Settings

VALIDATE_TEMPLATES_IGNORE_APPS

Ignore the following apps

VALIDATE_TEMPLATES_IGNORES

Ignore file names which matches these patterns. Matching is done via fnmatch.

VALIDATE_TEMPLATES_EXTRA_TEMPLATE_DIRS

You can use VALIDATE_TEMPLATES_EXTRA_TEMPLATE_DIRS to include a number of template dirs by default directly from the settings file. This can be useful for situations where TEMPLATE DIRS is dynamically generated or switched in middleware, or when you have other template dirs for external applications like celery, and you want to check those as well.

Usage Example

./manage.py validate_templates

You can also integrate it with your tests, like this:

import unittest
from django.core.management import call_command

class MyTests(unittest.TestCase):
    def test_validate_templates(self):
        call_command("validate_templates")
        # This throws an error if it fails to validate