在我的工作中,我们只能访问服务器的前端/模板部分。我绝对不是Django程序员,但我很了解模板。我们要做的是,根据日期或日期范围,根据日期加载不同的{%extends%}。我所能找到的只是关于如何在后端进行操作的示例。我试过的一些想法没有奏效:
{% extends "base"+{% now "Ymd" %} %}
即使这确实有效,但在常规日,我想默认为
{% extends "base" %}
无论如何,该方法不会这样做。所以我在想像
这样的东西{% ifequal {% now "Ymd" %} "20140120" %}
{% extends "base2014120" %}
{% else %}
{% extends "base" %}
{% endifequal %}
但这显然也无效。我们希望能够提出一些解决方案,所以我不必在午夜继续登录以手动进行更改。
答案 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的情况下访问您的网站;)
你有它:我写过的最糟糕的黑客。
更新:我怀疑在您看到自己被贬低时,您的后端开发人员可能会对您表示同情并将日期添加到上下文中。