我的问题最初表现为一个相当普遍的"超出最大递归深度"错误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)