有什么方法可以根据日期编辑{%extends%}吗?

时间:2014-01-20 23:49:57

标签: django django-templates

在我的工作中,我们只能访问服务器的前端/模板部分。我绝对不是Django程序员,但我很了解模板。我们要做的是,根据日期或日期范围,根据日期加载不同的{%extends%}。我所能找到的只是关于如何在后端进行操作的示例。我试过的一些想法没有奏效:

{% extends "base"+{% now "Ymd"  %} %}

即使这确实有效,但在常规日,我想默认为

{% extends "base" %}

无论如何,该方法不会这样做。所以我在想像

这样的东西
{% ifequal {% now "Ymd"  %} "20140120" %}
  {% extends "base2014120" %}
{% else %}
  {% extends "base" %}
{% endifequal %}

但这显然也无效。我们希望能够提出一些解决方案,所以我不必在午夜继续登录以手动进行更改。

1 个答案:

答案 0 :(得分:2)

免责声明:这真的很肮脏,可能是一个安全问题,但如果您完全确定,则无法将日期添加到上下文中,然后我找到了办法。

设置包含日期的cookie。

<script type="text/javascript">
    document.cookie="datecookie={% now 'Ymd' %}";
</script>

然后,您可以在模板中使用此值:

{% extends 'base'|add:request.COOKIES.datecookie|add:'.html'|default:'base.html' %}

如果在加载页面之前无法设置cookie,则可以将默认模板设置为cookie并重定向到.。这将创建一个新请求,并将设置cookie。 (虽然我不想在关闭cookie的情况下访问您的网站;)

你有它:我写过的最糟糕的黑客。

更新:我怀疑在您看到自己被贬低时,您的后端开发人员可能会对您表示同情并将日期添加到上下文中。