gpt4 book ai didi

python - 在 Django 模板 Django 中获取特定日期

转载 作者:太空宇宙 更新时间:2023-11-04 09:10:53 25 4
gpt4 key购买 nike

你好我需要在我的 django 模板文件中检查每个月的 10 号,谁能告诉我如何检查这个重点是我需要在每个月的 10 号之前显示一些数据,并在 10 号之后隐藏它

最佳答案

需要理解的几件事:

  1. Django 的模板语言并不是真正围绕“真正的”编程设计的。它的核心是构建字符串。
  2. 它不支持真正的“表达式”。
  3. …但它确实支持基本条件和循环。
  4. 因此,虽然您可以检查一个值是否等于、大于或小于另一个值,但您不能做更多的事情。
  5. 除非您使用过滤器或自定义模板标签。
  6. 过滤器可以将值从一种事物转换为另一种事物。
  7. 模板标签可以做更复杂的事情,超出了这个问题的范围。
  8. 虽然过滤器或自定义模板标签可以到达您想要去的地方,但它们的杀伤力太大了​​。

因此,在我看来,最简单的方法是:

  1. 在您的 View 中计算当前日期的日期。
  2. 将该值传递给您的模板。
  3. 根据数字 10 对传入的值进行简单的“如果大于”检查。

所以,我们的 View 看起来像这样:

def sample_view(request, *args, **kwargs):
from datetime import date
current_date = date.today()
current_day = int(current_date.day) # force a cast to an int, just to be explicit
return render_to_response("template", {'day_of_the_month': current_day })

在我们的模板中我们会做:

{% if day_of_the_month > 10 %}
<!-- Stuff to show after the 10th -->
{% else %}
<!-- Stuff to show before the 10th -->
{% endif %}

这确实会向您的模板公开您可能出于安全原因而根据日期隐藏的内容。 您永远不应在基于 if/then 检查的模板中隐藏安全内容。

如果您需要做额外的检查,您可以只传入current_date,然后将current_date.day 与数字10 进行对比,而不是专门传入那一天。它会不那么明确,但更通用和灵活。

关于python - 在 Django 模板 Django 中获取特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15401591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com