【问题标题】:Django flatpagesDjango 平面页面
【发布时间】:2023-03-15 20:14:02
【问题描述】:

我正在使用 Django 平面页面,并希望在基于用户会话变量的模板中实现一些逻辑。

例如。

{% if session.my_var %}
    YES
{% else %}
    NO
{% endif %}

问题是会话对象未在平面页面上下文中定义。

【问题讨论】:

  • 您的问题是什么?你有什么问题?
  • 那么,问题是什么?

标签: python django django-views django-flatpages


【解决方案1】:

创建一个TEMPLATE_CONTEXT_PROCESSOR,然后由RequestContext 使用(请参阅docs)。

def session(request):
    return { 'session': request.session }

【讨论】:

  • 太好了,这正是我正在寻找的(因为如果平面模块源我看不到会话)
  • @AlanHarper:我刚刚更新了我的答案,因为模板标签是一个更精细的解决方案。 Django 的平面页面使用 RequestContext,因此您可以创建模板上下文处理器来将变量添加到上下文中。
  • tnx,顺便说一句 - 你可能还记得是否可以将一个平面页面包含到另一个页面中吗? (就像几个页面通用的占位符)? tnx
  • @我认为这是不可能的,因为一页可能包含多个 FlatPage 模型对象。但是您仍然可以使用 include 将模板作为普通 Django 模板包含在内。
猜你喜欢
  • 1970-01-01
  • 2010-12-10
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 2011-07-08
  • 2011-07-08
相关资源
最近更新 更多