如何将数据库中的变量放入基本.html模板?

2024-10-02 00:40:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个网页。在footer中会有联系人,如电子邮件或电话。这个footer应该无处不在,所以它在base.html中,每个{}都在扩展。在

我创建了一个名为ContactAdmin的表,为管理员提供简单明了的界面来更改他的联系信息。问题就在这里。在

base.html没有视图(它只是为了扩展),所以我不知道如何将变量-emailtelephone从表ContactAdmin中放入。我想把它放到每一个角度,在我看来这是一个巨大的过度杀戮。在

那么如何使Django从数据库中读取这些变量并将它们放入base.html?在

ContactAdmin表应该只有一行


Tags: 视图信息网页base界面电子邮件email管理员
2条回答

您可以为此使用上下文处理器。例如:

你的应用程序/上下文_处理器.py在

def contact(request):
    from yourapp.models import ContactAdmin
    contacts = ContactAdmin.objects.all()

    return {
        'contacts': contact,  # Add 'contacts' to the context
    }

你的项目/设置.py在

^{pr2}$

我想这些联系方式不会经常改变。所以您可能对caching查询的结果感兴趣。在

你不需要编辑所有视图。对于这个场景,django有template context processors。这里的优点是,由于基本模板仍然是模板语言的一部分,并且它可以访问Context,所以您只需要在自定义上下文处理器中设置这些变量,一切都应该正常工作。在

关于如何编写自定义上下文处理器的一些示例:

相关问题 更多 >

    热门问题