Python 在django模板django中获取特定日期

Python 在django模板django中获取特定日期,python,django,date,Python,Django,Date,嗨,我需要在我的django模板文件中检查每个月的10号,有人能告诉我如何检查这个吗 强调的是,我需要在每个月的10号之前显示一些数据,并在10号之后隐藏这些数据。我需要了解一些事情: Django的模板语言并不是真正围绕“真实”编程设计的。在它的核心,它只是构建字符串 它不支持真正的“表达式” …但它确实支持基本条件和循环 因此,虽然可以检查一个值是否等于、大于或小于另一个值,但不能做更多的事情 除非使用过滤器或自定义模板标记 过滤器可以将值从一个对象转换为另一个对象 模板标记可以做更复杂的事

嗨,我需要在我的django模板文件中检查每个月的10号,有人能告诉我如何检查这个吗
强调的是,我需要在每个月的10号之前显示一些数据,并在10号之后隐藏这些数据。我需要了解一些事情:

  • Django的模板语言并不是真正围绕“真实”编程设计的。在它的核心,它只是构建字符串
  • 它不支持真正的“表达式”
  • …但它确实支持基本条件和循环
  • 因此,虽然可以检查一个值是否等于、大于或小于另一个值,但不能做更多的事情
  • 除非使用过滤器或自定义模板标记
  • 过滤器可以将值从一个对象转换为另一个对象
  • 模板标记可以做更复杂的事情,这超出了这个问题的范围
  • 虽然过滤器或自定义模板标记都可以达到您想要的目的,但它们太过复杂了
  • 因此,在我看来,最简单的方法是:

  • 计算视图中当前日期的日期
  • 将该值传递给模板
  • 根据数字10对传入的值执行简单的“如果大于”检查
  • 因此,我们的观点如下:

    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 %}
    
    {10%}
    {%else%}
    {%endif%}
    
    出于安全原因,这会将您可能基于日期隐藏的内容暴露到模板中。永远不要在基于if/then检查的模板中隐藏安全内容


    如果你需要做额外的检查,你可以直接输入
    current_date
    ,然后对照数字10检查
    current_date.day
    ,而不是专门输入当天。它不太明确,但更通用、更灵活。

    需要了解以下几点:

  • Django的模板语言并不是真正围绕“真实”编程设计的。在它的核心,它只是构建字符串
  • 它不支持真正的“表达式”
  • …但它确实支持基本条件和循环
  • 因此,虽然可以检查一个值是否等于、大于或小于另一个值,但不能做更多的事情
  • 除非使用过滤器或自定义模板标记
  • 过滤器可以将值从一个对象转换为另一个对象
  • 模板标记可以做更复杂的事情,这超出了这个问题的范围
  • 虽然过滤器或自定义模板标记都可以达到您想要的目的,但它们太过复杂了
  • 因此,在我看来,最简单的方法是:

  • 计算视图中当前日期的日期
  • 将该值传递给模板
  • 根据数字10对传入的值执行简单的“如果大于”检查
  • 因此,我们的观点如下:

    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 %}
    
    {10%}
    {%else%}
    {%endif%}
    
    出于安全原因,这会将您可能基于日期隐藏的内容暴露到模板中。永远不要在基于if/then检查的模板中隐藏安全内容


    如果你需要做额外的检查,你可以直接输入
    current_date
    ,然后对照数字10检查
    current_date.day
    ,而不是专门输入当天。它不太明确,但更通用、更灵活。

    到目前为止您做了什么?代码?到目前为止你做了什么?代码?嗨,我在模板中使用了变量day_of the_month,但它给我的值是3月14日,2013年,但我只需要获得日期值,如14。我如何筛选该值确保您已通过当前日期而不是当前日期。对不起,亲爱的,您是对的,我传递了错误的变量,但现在很好,谢谢。我在模板中使用了变量day\u,如3月14日,2013年,但我只需要获得一天的值,比如只有14天。我如何筛选此值确保您已通过当前日期,而不是当前日期。对不起,亲爱的,您是对的,我传递了错误的变量,但现在很好,非常感谢