Skip to main content
 首页 » 编程设计

python之在 Django 中包含几个模板的菜单

2025年05月04日27sky-heaven

我尽量不要在不同的模板上写两次相同的代码。改变某些东西时真的很麻烦。

所以当我转到网页的某个部分时,我想显示一个侧面菜单。这个侧边菜单应该在几个模板上。如 index.html、detail.html、manage.html 等。

但该部分只是网页的一部分,所以我不能将它放在 base.html 中。

我正在考虑使用 include。但是由于侧面菜单依赖于要生成的数据库查询,因此我必须对每个 View 进行查询。这也会产生冗余代码。

此功能的最佳做法是什么?

干杯!

请您参考如下方法:

您可以编写自定义 inclusion_tag ,这对于场景更可行:

my_app/templatetags/my_app_tags.py

from django import template 
 
register = template.Library() 
 
@register.inclusion_tag('side_menu.html') 
def side_menu(*args, **kwargs): 
    # prepare context here for `side_menu.html` 
    ctx = {} 
    return ctx 

然后在您想要包含侧边菜单的任何模板中执行此操作:

{% load side_menu from my_app_tags %} 
 
{% side_menu %}