【问题标题】:how to send a value from views.py to base.html everywhere on site?如何将值从views.py 发送到站点各处的base.html?
【发布时间】:2012-09-30 17:20:42
【问题描述】:

我想在整个网站的页脚中有一个包含最新帖子的部分。我的页脚位于 base.html。

我怎么能有这个:

def footer(request):
return render_to_response('base.html', {'posts_latest':Post.objects.order_by('-published'),},)

在每一页上?要显示它,我必须将函数与一个 url 连接起来,但我不能对所有这些函数都这样做。

我试过这个context processors tutorial,但我一直收到错误:

Error importing request processor module myapp.app.context_processors: "No module named context_processors" 

所以我放弃了这个想法。

你有什么建议?

提前致谢。

【问题讨论】:

  • 您正在寻找自定义上下文处理器,因此您已经在正确的轨道上。您应该尝试解决您的导入问题。你在运行什么 django 版本?您的处理器位于何处?
  • Url -> 一个视图 -> 一个渲染模板。但是模板可以扩展另一个模板并包含多个其他模板。您不必为页面的一部分编写视图,除非这部分是由 ajax 异步加载的。但是,正如@Jingo 所提到的,上下文处理器是您所需要的。
  • 我使用的是 Django 1.4,我的处理器位于 views.py 文件中,这是通用的,在所有特定应用程序之外。 def footer(request): return {'posts_latest':Post.objects.order_by('-published'),} 就是这样。
  • 我想通了!那是我在遵循模式而不是思考。我应该写 myapp.views.footer。感谢您帮助我获得有关其所在位置的问题的答案。如果你写下你的答案,我会选择它作为解决方案:)

标签: django footer django-urls


【解决方案1】:

您正在寻找自定义上下文处理器,因此您已经走在正确的轨道上。您应该尝试解决您的导入问题。你在运行什么 django 版本?您的处理器位于何处?

【讨论】:

    猜你喜欢
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多