2017-02-02 18 views
2

私はformats.pyの各ロケール(英語、フランス語、スペイン語など)のファイルを持つDjangoプロジェクトを持っています。Djangoのユーザ定義の条件付きローカルローカル日時フォーマット

DATETIME_FORMAT = 'd b Y h:i' 

今、私の目標は、私は今日のために'h:i'を取得し、ユーザー定義のフォーマットで'd b Y h:i'を定義し、交換することです、そして今日と異なる日付の'd b Y h:i'

formats.pyファイルには、次のようになります。 Djangoで可能ですか?

私はthis postを見つけましたが、formats/pyで使用できる標準フォーマットを定義するのに役立ちません。むしろ、datetimeフィールドが現れるたびにテンプレートに明示的に適用する必要があるフィルタを作成する方法を示します。

UPDATE:

私はsettings.pyに標準日時書式を定義する方法を知っている:

FORMAT_MODULE_PATH = [ 
    'android_blend.formats', 
] 

私の質問は、今日のために私は別の形式を持っているCONDITIONAL USER DEFINEDフォーマットを定義する方法ですと、今日以外の日付。

+0

set.pyファイル –

+0

で標準時形式を更新しました。更新された質問 –

+0

Piyushを参照してください。質問に含まれているリンクを貼り付けてください。 OPの質問は異なっています –

答えて

1

これが役立つことができるようになりまし

from django import template 
register = template.Library() 

@register.simple_tag(name="custom_date_format") 
def custom_date_format(timestamp, user, **kwargs): 
    if user.type =="option1": 
     return datetime.strftime("%Y%m%d") 
    elsif user.type =="option2": 
     return datetime.strftime("%Y%m%d %H") 
    else: 
     return datetime.strftime("%Y%m%d %m") 

をすることができたの 内容custom_date_format.pyファイルを作成 インサイドtemplatetagsと呼ばれるあなたのアプリ内のpythonフォルダを作成します。あなた: -

today = datetime.now() 

{% if inputDate == today %} 
    <p>DateHeading: {{ showDate|date:"h:i" }}</p> 

{% if inputDate > today %} 
    <p>DateHeading: {{ showDate|date:"d b Y h:i" }}</p> 
+0

はい、AFAIK、この 'if-else'ブロック場所をタグにしてコードをもっと乾くようにするdjangoツールはありません –

-1

単純なテンプレートタグを設定して、必要に応じてその日時をフォーマットすることができます。

は、あなたのテンプレートを使用すると、

{% load custom_date_form %} 
{% custom_date_format datetimefield user %} 
+0

ありがとう。しかし、残念ながら、私はそれが質問にどのように関連しているのか分かりません。 –

関連する問題