O que é a tag de modelo embutida para exibir o ano atual dinamicamente. Como "2011", qual seria a tag do modelo para exibir isso?
O que é a tag de modelo embutida para exibir o ano atual dinamicamente. Como "2011", qual seria a tag do modelo para exibir isso?
Respostas:
A tag completa a ser impressa apenas no ano atual é {% now "Y" %}
. Observe que o Y deve estar entre aspas.
Y
deve ser citado como na resposta de cabishek.
F
em vez deM
Eu usei o seguinte no meu site do Django http://pmtboyshostelraipur.pythonanywhere.com/, que funciona bem como esperado (talvez, no momento em que você está lendo este post, ele pare de funcionar porque é uma hospedagem gratuita, apenas tente no código e veja).
{% now 'Y' %}
Você pode visitá-lo e vê-lo na parte do rodapé onde eu mostrei o ano atual usando o código abaixo (a parte CSS é omitida, use o seu próprio).
<footer class="container-fluid" id="footer">
<center>
<p>
©
{% now 'Y' %},
PMT Boys hostel <br>
All rights reserved
</p>
</center>
</footer>
E está exibindo o seguinte texto centralizado no rodapé do meu site.
©2018, PMT Boys hostel
All rights reserved
No meu modelo, além do ano atual, eu precisava de uma lista suspensa do ano de vencimento do cartão de crédito com 20 valores (começando no ano atual). Os select
valores precisavam ter 2 dígitos e a seqüência de caracteres 4 dígitos. Para evitar código de modelo complexo, escrevi esta tag de modelo simples:
@register.filter
def add_current_year(int_value, digits=4):
if digits == 2:
return '%02d' % (int_value + datetime.datetime.now().year - 2000)
return '%d' % (int_value + datetime.datetime.now().year)
E usei da seguinte maneira:
<select name="card_exp_year">
{% for i in 'iiiiiiiiiiiiiiiiiiii' %}
<option value="{{ forloop.counter0|add_current_year:2 }}">{{ forloop.counter0|add_current_year:4 }}</option>
{% endfor %}
</select>