根据日期编辑{%扩展%}的任何方法



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

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

即使在常规的日子里确实有效,我也想默认为

{% extends "base" %}

无论如何,该方法无法做到。所以我在想

{% ifequal {% now "Ymd"  %} "20140120" %}
  {% extends "base2014120" %}
{% else %}
  {% extends "base" %}
{% endifequal %}

但显然也没有起作用。我们希望提出一些解决方案,因此我不必在午夜登录即可手动进行更改。

免责声明:这确实是肮脏的,并且可能是安全问题,但是如果您绝对确定,则无法将日期添加到上下文中,然后我找到了一种方法。

设置一个包含日期的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。(尽管我不想关闭饼干访问您的网站;)

您有它:我写过的最讨厌的黑客。

更新:我怀疑,看到您被缩小为此,您的后端开发人员可能会怜悯您,只需将日期添加到上下文中。

相关内容

最新更新