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?

Willy Nelson
sumber

Jawaban:

324

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

Brown Haldean
sumber
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
43

{% now 'Y' %} adalah sintaks yang benar

cabhishek
sumber
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
camar
sumber
-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>
Pengrajin Awan
sumber
jawaban terlalu panjang!
mohammedgqudah
@mohammedqudah, tergantung kebutuhan Anda!
Cloud Artisans