【问题标题】:How to add app to all pages in django?如何将应用程序添加到 django 中的所有页面?
【发布时间】:2010-08-17 01:31:51
【问题描述】:

我有一个名为 lastapp 的应用程序,我希望它可以在所有页面上查看。它呈现 base.html,因此它适用于所有应用程序。到目前为止,我已经尝试将它添加到 urls.py 中,如下所示:

urlpatterns = patterns('',   
    (r'^first/$', firstapp, lastapp),
    (r'^last/$', lastapp),
)

但是当我转到 /first/ 时,它给了我错误:错误,'function' not iterable。转到 /last/ 时显示正常。如果我从 urls.py 中的 /first/ 站点中删除 lastapp,那么 firstapp 也显示正常。有没有特殊的方法可以做到这一点?提前致谢。

【问题讨论】:

    标签: django django-urls django-views


    【解决方案1】:

    你到底想做什么?

    所有已安装的应用程序都在您的项目中可用,但应用程序本身不会向模板返回任何数据,这是该应用程序一部分的视图的工作。

    我的猜测是 firstapplastapp 是视图而不是应用程序。

    如果是这种情况,context processors 可以始终将某些数据传递给模板。

    因此,从lastapp 创建一个上下文处理器,并将其设置在 settings.py 中的TEMPLATE_CONTEXT_PROCESSORS 中。

    【讨论】:

    • 是的,lastapp 和 firstapp 都是视图。 lastapp 所做的只是从 firstapp 中的模型获取数据。感谢您指出上下文处理器。
    【解决方案2】:

    我想你需要的可能是Middleware

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      相关资源
      最近更新 更多