【问题标题】:default context for all pages Django所有页面的默认上下文 Django
【发布时间】:2020-03-03 21:28:38
【问题描述】:

我想知道是否有任何方法可以为 django 中的所有页面发送默认上下文,例如无论其他上下文如何,用户总是传递给模板,对于我的特殊情况,我想为导航栏发送上下文,例如类别和子类别到所有页面,而无需发送所有视图。 TIA

【问题讨论】:

标签: python django templates


【解决方案1】:

您可以通过创建上下文处理器来实现这一点。在任何应用程序中创建一个 context_processors.py,我建议在您的主应用程序上进行。在这里您可以创建上下文字典。像这样:

from product.models import SubCategory, Category


def add_variable_to_context(request):
    return {
        'subCategories': SubCategory.objects.order_by('id').all(),
        'categories': Category.objects.order_by("id").all(),
    }

将此行添加到 settings.py 中的 TEMPLATES 以调用创建的上下文处理器

'OPTIONS': {
    'context_processors': [
        ....
        'yourAppName.context_processors.add_variable_to_context',
        ....
    ],
},

现在您可以在 base.html

中调用您创建的上下文字典

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2013-02-03
    • 1970-01-01
    • 2015-10-15
    • 2018-09-09
    相关资源
    最近更新 更多