Cari yılı bir Django şablonunda nasıl görüntüleyebilirim?


163

Mevcut yılı dinamik olarak görüntülemek için dahili şablon etiketi nedir? "2011" gibi bunu gösteren şablon etiketi ne olurdu?

Yanıtlar:


325

Sadece geçerli yılı yazdırmak için tam etiket {% now "Y" %}. Y'nin tırnak işaretleri içinde olması gerektiğini unutmayın.


4
Kayıt için, {% now%} sunucudan farklı bir saat dilimindeki kullanıcılar için uygun sonuçlar vermeyecektir.
Tomasz Zieliński

27
@Thomas Bazı durumlar için doğru, ancak, mevcut yılı istemek için gördüğüm en yaygın kullanım örneği bir telif hakkı bildirimi ve 1 Ocak'ta yol alırken bu 24 saat boyunca mükemmel olması gerçekten önemli değil Dünya.
Endofhage

2
tesadüfen, bu kod yanlıştır, Ycabishek'un cevabı gibi belirtilmelidir.
Endofhage

Eğer "M" ayını alsaydım "Kasım" ı "Kasım" a nasıl
Josh

1
@Tam dokümanlar tam docs.djangoproject.com/en/dev/ref/templates/builtins/… , ama Fbunun yerine arıyorsunuzM
Haldean Brown



2

Django tabanlı web sitemde aşağıdakileri kullandım http://pmtboyshostelraipur.pythonanywhere.com/ beklendiği gibi iyi çalışıyor (Belki, bu yazıyı okuduğunuzda, bu sadece ücretsiz bir barındırma çünkü çalışmayı durdururdu çünkü kod deneyin ve bakın).

{% now 'Y' %}

Aşağıdaki kodu kullanarak geçerli yılı görüntülediğim altbilgi bölümünde ziyaret edebilir ve görebilirsiniz (CSS kısmı atlanır, bu yüzden kendi kodunuzu kullanın).

<footer class="container-fluid" id="footer">
    <center>
        <p>
           &copy;
           {% now 'Y' %}, 
           PMT Boys hostel <br> 
           All rights reserved
        </p>
    </center>
</footer>

Ve web sitemin altbilgisinde aşağıdaki ortalanmış metin görüntüleniyor.

©2018, PMT Boys hostel 
All rights reserved

-2

Şablonumda, cari yıl dışında, 20 değerle (cari yıl ile başlayarak) kredi kartı son kullanma yılı açılır menüsüne ihtiyacım vardı. selectGerekli değerler 2 basamak ve ekranın şeritler 4 basamak için. Karmaşık şablon kodunu önlemek için bu basit şablon etiketini yazdım:

@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)

Ve aşağıdaki şekilde kullandı:

<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>

çok uzun cevap!
mohammedgqudah

@mohammedqudah, ihtiyaçlarınıza bağlıdır!
Cloud Artisans
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.