【问题标题】:Passing an object in every Django page在每个 Django 页面中传递一个对象
【发布时间】:2011-11-23 05:46:34
【问题描述】:

我有一个名为Groups 的对象,用于我网站上的每个页面。但是,Django 仅通过render_to_response 将 Python 对象传递给 html,并且我无法在组对象发生任何事情时呈现响应。

我如何维护这个对象(如让它响应添加和删除)并在我拥有的每个 Django 模板中生成它而不调用render_to_response

【问题讨论】:

    标签: django templates


    【解决方案1】:

    写一个template context processor

    #my_context_processors.py
    
    def include_groups(request):
        #perform your logic to create your list of groups
        groups = []
        return {'groups':groups}
    

    然后将其添加到您的设置文件中:

    #settings.py
    
    TEMPLATE_CONTEXT_PROCESSORS = (
         "django.core.context_processors.auth",
         "django.core.context_processors.debug",
         "django.core.context_processors.i18n",
         "django.core.context_processors.media",
         "path.to.my_context_processors.include_groups",
    )
    

    现在您可以在所有模板中使用变量 groups

    【讨论】:

      【解决方案2】:

      如果您需要将数据添加到多个模板上下文中,您应该考虑通过自己的template context processor 来实现。

      【讨论】:

        【解决方案3】:

        您需要创建模板上下文处理器以将对象传递给每个请求。这是一些example

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多