小编Wes*_*Wes的帖子

为什么Django(1.5.1)会调用Loader.load_template_source()69次?

我的问题最初表现为一个相当普遍的"超出最大递归深度"错误ListView.在挖掘之后,我发现每次尝试加载相应页面时都会在dbtemplates中发现大量缓存命中.这促使我编写了自己的模板加载器,此时很明显Django load_template_source每次加载页面时都会调用六十九次.

为什么Django会load_template_source多次拨打电话?

visitor_index(db模板)

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>{{ site.name }}</title>
    </head>
    <body id="home">
    <pre>
        Starting
        {% for video in videos %}
            {{ video.headline }}
        {% endfor %}
    </pre>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

urls.py

from django.conf.urls import include, url
from django.conf.urls.defaults import patterns
from videos.views import *

urlpatterns = patterns('',
    url(r'^$', VisitorIndex.as_view(), name='index'),
)
Run Code Online (Sandbox Code Playgroud)

views.py

import logging
from django.views.generic import ListView
from videos.models import Video

logger = logging.getLogger(__name__)

class VisitorIndex(ListView):
    context_object_name = 'videos'
    template_name = 'visitor_index' …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-views django-debug-toolbar

5
推荐指数
1
解决办法
643
查看次数