วิธีการแสดงปีปัจจุบันในเทมเพลต Django?


163

แท็กแม่แบบ inbuilt คืออะไรที่จะแสดงปีปัจจุบันแบบไดนามิก เช่นเดียวกับ "2011" แท็กแม่แบบที่จะแสดงนั้นคืออะไร

คำตอบ:


325

{% now "Y" %}แท็กเต็มรูปแบบในการพิมพ์เพียงปีปัจจุบัน โปรดทราบว่า Y ต้องอยู่ในเครื่องหมายคำพูด


4
สำหรับบันทึก {% ตอนนี้%} จะไม่ให้ผลลัพธ์ที่เหมาะสมสำหรับผู้ใช้ภายในเขตเวลาที่แตกต่างจากเซิร์ฟเวอร์
Tomasz Zieliński

27
@Thomas True สำหรับบางกรณีอย่างไรก็ตามกรณีการใช้งานที่พบบ่อยที่สุดที่ฉันต้องการสำหรับปีปัจจุบันคือคำบอกกล่าวลิขสิทธิ์และมันไม่สำคัญว่ามันจะสมบูรณ์แบบสำหรับ 24 ชั่วโมงในขณะที่ 1 มกราคมเดินทางไปถึง โลก.
Endophage

2
โดยบังเอิญรหัสนั้นไม่ถูกYต้องจะต้องยกมาเป็นคำตอบของ cabishek
Endophage

ถ้าฉันได้รับเดือนเช่น "M" ฉันจะได้รับ "พ.ย. " ถึง "พฤศจิกายน" ได้อย่างไร
Josh

1
@ Josh เอกสารเต็มรูปแบบคือdocs.djangoproject.com/en/dev/ref/templates/builtins/ ......แต่คุณกำลังมองหาFแทนที่จะเป็นM
Haldean Brown



2

ฉันได้ใช้สิ่งต่อไปนี้ในเว็บไซต์ที่ใช้ Django ของฉันhttp://pmtboyshostelraipur.pythonanywhere.com/ซึ่งทำงานได้ดีอย่างที่คาดไว้ ลองในรหัสและดู)

{% now 'Y' %}

คุณสามารถเยี่ยมชมและดูได้ในส่วนท้ายที่ฉันได้แสดงปีปัจจุบันโดยใช้รหัสด้านล่าง (ส่วน CSS ถูกละเว้นดังนั้นใช้ของคุณเอง)

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

และมันจะแสดงข้อความที่เป็นศูนย์กลางต่อไปนี้ในส่วนท้ายของเว็บไซต์ของฉัน

©2018, PMT Boys hostel 
All rights reserved

-2

ในเทมเพลตของฉันนอกเหนือจากปีปัจจุบันฉันต้องการแบบเลื่อนลงปีที่บัตรเครดิตหมดอายุด้วยค่า 20 ค่า (เริ่มต้นด้วยปีปัจจุบัน) selectค่าที่จำเป็นจะต้อง 2 หลักและการแสดงสายหลัก 4 เพื่อหลีกเลี่ยงรหัสแม่แบบที่ซับซ้อนฉันได้เขียนแท็กแม่แบบง่าย ๆ นี้:

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

และใช้มันในลักษณะดังต่อไปนี้:

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

คำตอบยาวเกินไป!
mohammedgqudah

@mohammedqudah ขึ้นอยู่กับความต้องการของคุณ!
Cloud Artisans
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.