Bagaimana cara menampilkan tahun ini dalam templat Django?


163

Apa tag templat bawaan untuk menampilkan tahun ini secara dinamis. Seperti "2011", apa yang akan menjadi tag templat untuk menampilkannya?

Jawaban:


324

Tag lengkap untuk mencetak hanya tahun ini adalah {% now "Y" %}. Perhatikan bahwa Y harus dalam tanda kutip.


4
Sebagai catatan, {% sekarang%} tidak akan memberikan hasil yang tepat untuk pengguna dalam zona waktu berbeda dari server.
Tomasz Zieliński

27
@Thomas Benar untuk beberapa kasus, bagaimanapun, kasus penggunaan paling umum yang saya lihat untuk menginginkan tahun ini adalah pemberitahuan hak cipta, dan itu benar-benar tidak penting untuk itu menjadi sempurna untuk 24 jam sementara Jan 1 membuat jalan di sekitar Dunia.
Endophage

2
kebetulan, kode itu salah, Yharus dikutip seperti dalam jawaban cabishek.
Endophage

Jika saya mendapatkan bulan yaitu "M" bagaimana saya akan mendapatkan "Nov" hingga "November"
Josh

1
@Josh dokumen lengkapnya adalah docs.djangoproject.com/en/dev/ref/templates/builtins/… , tetapi Anda mencari FbukanM
Haldean Brown



2

Saya telah menggunakan yang berikut ini di situs web saya berbasis Django http://pmtboyshostelraipur.pythonanywhere.com/ yang berfungsi dengan baik seperti yang diharapkan (Mungkin, pada saat Anda membaca posting ini, itu akan berhenti bekerja karena itu adalah hosting gratis jadi hanya coba dalam kode dan lihat).

{% now 'Y' %}

Anda dapat mengunjungi & melihatnya di bagian footer tempat saya menampilkan tahun ini menggunakan kode di bawah ini (bagian CSS dihilangkan jadi gunakan milik Anda).

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

Dan itu menampilkan teks terpusat berikut di footer situs web saya.

©2018, PMT Boys hostel 
All rights reserved

-2

Dalam templat saya, selain tahun ini, saya memerlukan dropdown tahun kedaluwarsa kartu kredit dengan 20 nilai (dimulai dengan tahun berjalan). The selectnilai-nilai yang dibutuhkan untuk menjadi 2 digit dan menampilkan string 4 digit. Untuk menghindari kode templat yang rumit, saya menulis tag templat sederhana ini:

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

Dan menggunakannya dengan cara berikut:

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

jawaban terlalu panjang!
mohammedgqudah

@mohammedqudah, tergantung kebutuhan Anda!
Cloud Artisans
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.