2013-03-14 5 views
1

Привет, мне нужно проверить 10-е число каждого месяца в файле шаблона django, может ли кто-нибудь сказать мне, как я могу проверить это на самом деле, мне нужно показать некоторые данные до 10 числа каждого месяца и скрыть, что после 10-гополучить конкретную дату в шаблоне django Django

+0

что вы сделали до сих пор? коды? – catherine

ответ

5

несколько вещей, чтобы понять:

  1. язык шаблонного Джанго не действительно разработан вокруг «реального» программирования. По сути, это просто строение строк.
  2. Он не поддерживает настоящие «выражения».
  3. ... но он поддерживает основные условные обозначения и циклы.
  4. Так что, пока вы можете проверить, равно ли значение или больше или меньше другого значения, вы не можете сделать гораздо больше.
  5. Если вы не используете фильтр или собственный тег шаблона.
  6. Фильтры могут преобразовывать значения из одной вещи в другую.
  7. Шаблонные теги могут делать более сложные вещи, которые выходят за рамки этого вопроса.
  8. Хотя фильтр или пользовательский тег шаблона могут попасть туда, куда вы хотите пойти, они будут излишними.

Таким образом, на мой взгляд, самый простой способ сделать это было бы:

  1. Вычислить день текущей даты на ваш взгляд.
  2. Передайте это значение вашему шаблону.
  3. ли простой «если он больше, чем» проверить на переданному в стоимости по отношению к числу 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 }) 

И в нашем шаблоне мы бы do:

{% 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, а не конкретно проходит в тот же день. Он был бы менее явным, но более общим и гибким.

+0

Привет, я использую переменную day_of_the_month в шаблоне, но она дает мне значение, как 14 марта 2013 года, но мне нужно получить только дневное значение, как только 14 Как я могу отфильтровать этот – user2106353

+0

Убедитесь, что вы прошли в current_day, а не current_date. –

+0

извините, дорогая, вы правы, я прошел неправильную переменную, но она отлично выглядит сейчас благодаря большому количеству – user2106353

Смежные вопросы