Djangoテンプレートで現在の年を表示する方法は?


163

現在の年を動的に表示するための組み込みのテンプレートタグとは何ですか。「2011」のように、それを表示するためのテンプレートタグは何でしょうか。

回答:


324

現在の年だけを印刷する完全なタグは{% now "Y" %}です。Yは引用符で囲む必要があることに注意してください。


4
記録のために、{%now%}はサーバーとは異なるタイムゾーン内のユーザーに適切な結果を提供しません。
TomaszZieliński11年

27
@Thomas Trueの場合もありますが、私が今年欲しいと思った最も一般的な使用例は著作権情報であり、Jan 1stがその24時間を過ごす間、24時間完璧であることはそれほど重要ではありません。世界。
エンドファージ2011

2
ちなみに、そのコードは間違っていますY、cabishekの答えのように引用する必要があります。
エンドファージ

月、つまり「M」を取得している場合、「11月」を「11月」にするにはどうすればよいですか
Josh

1
@Josh完全なドキュメントはdocs.djangoproject.com/en/dev/ref/templates/builtins/…ですが、F代わりに探していますM
Haldean Brown '28



2

私はDjangoベースのWebサイト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 2017

@mohammedqudah、あなたのニーズに依存します!
Cloud Artisans 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.