Django 1.8没有使用Jinja2模板引擎

时间:2015-09-11 10:23:36

标签: python django jinja2

我已按照django1.8使用jinja2的说明进行操作。 --->

$html = $('.media>div');

$('#search').keyup(function() {
    var searchstring = $(this).val().toLowerCase();

    $(".tag>i").each(function () {
        var text = $(this).text().toLowerCase();

        $('.media').empty().append($html);

        if (text.indexOf(searchstring) > -1) {
            $(this).prop("disabled", false);
        } else {
            $(this).closest('.col-md-12').prop("disabled", true).detach();
        }
    });
});

我有一个包含环境的.py文件 - >

#settings.py

TEMPLATES = [
    {

        'BACKEND': 'django.template.backends.jinja2.Jinja2',
        'DIRS': [
            normpath(join(DJANGO_ROOT, 'templates/jinja2')),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'environment': 'kuyuweb_dj_1_8.jinja2.environment',
        },
    },
    {

        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.contrib.auth.context_processors.auth',
                'django.template.context_processors.debug',
                'django.template.context_processors.i18n',
                'django.template.context_processors.media',
                'django.template.context_processors.static',
                'django.template.context_processors.tz',
                'django.contrib.messages.context_processors.messages',
                'django.core.context_processors.request',
            ],
        },
    },
]

在我的应用程序文件夹中我有templates / jinja2文件夹。  我创建了一个简单的视图:

from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.urlresolvers import reverse
from jinja2 import Environment


def environment(**options):
    env = Environment(**options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url': reverse,
    })
    return env

但是,例如当我尝试将jinja2模板标记用作def home(request): works = Work.objects.filter(publish=True).order_by('-created_at')[:8] return render(request, 'jinja2/home.html', {'works':works }) 时,它不起作用。 {{ loop.index }}仍然有效。

有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

您应用的jinja模板应该在yourapp/jinja2,而不是yourapp/templates/jinja2

如果模板位于yourapp/jinja2/home.html,那么您的render行应为

return render(request, 'home.html', {'works':works })
相关问题