我有一个自定义上下文处理器,用于在站点范围内生成动态菜单和当前应用程序列表:
from portal.models import *
def base_items(request):
return {
...
'app_items': App.objects.filter(isonline=True),
'menu_items': MainMenu.objects.all().order_by('position'),
}
编辑:
我的模板(请注意,这些 url 中的许多都在 Django 框架之外,并且因语言而异。因此需要将它们硬编码到 db 字段中:
<ul class="menu">
{% for item in menu_items %}
{% if LANGUAGE_CODE = "en-us" %}
<li><a title="{{ item.title_en }}" href="{{ item.url_en }}">{{ item.title_en }}</a>
<ul>
{% for subitem in item.submenu_set.all %}
<li><a title="{{ subitem.title_en }}" href="{{ subitem.url_en }}">{{ subitem.title_en }}</a></li>
{% endfor %}
</ul>
</li>
{% else %}
<li><a title="{{ item.title_es }}" href="{{ item.url_es }}">{{ item.title_es }}</a>
<ul>
{% for subitem in item.submenu_set.all %}
<li><a title="{{ subitem.title_es }}" href="{{ subitem.url_es }}">{{ subitem.title_es }}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
</ul>
我的问题是 - 我如何缓存这些不经常更改的结果?
我已经尝试过 @cache_page 装饰器,但我可以看到我的页面仍在访问菜单项对象的数据库。
非常感谢任何帮助。