我有一个Django项目,其中每个语言环境都有formats.py
个文件(英语,法语,西班牙语等)。
formats.py
文件如下所示:
DATETIME_FORMAT = 'd b Y h:i'
现在,我的目标是使用用户定义的格式定义和替换'd b Y h:i'
,我今天获取'h:i'
,'d b Y h:i'
获取与今天不同的日期。 Django有可能吗?
我遇到了this post,但它无法帮助我定义我可以在formats/py
中使用的STANDARD FORMAT。相反,它告诉我们如何创建一个过滤器,我必须在模板中为每次出现的datetime字段显式应用。
更新:
我知道如何在settings.py中定义标准日期时间格式:
FORMAT_MODULE_PATH = [
'android_blend.formats',
]
我的问题是如何定义一个有条件的用户定义的格式,我今天和今天的日期格式不同。
答案 0 :(得分:1)
这可能会对您有所帮助: -
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>
答案 1 :(得分:-1)
您可以根据需要设置一个简单的模板标记来格式化日期时间。
在你的应用中创建一个名为templatetags的python文件夹 在里面创建一个文件custom_date_format.py 其内容可能是
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")
现在,您可以在模板中
{% load custom_date_form %}
{% custom_date_format datetimefield user %}