我有一个DateField模型,设置如下:
date = models.DateField(blank=False, default=datetime.now)
每次我将字段数据放入模板({{obj.date}}
)时,它以以下格式显示:
July 24, 2014
,我想将其永久更改为以下格式:
24.7.2014
我也有一个搜索页面,数据可以通过其日期字段搜索-我希望能够以这种格式搜索。我该怎么做呢?
EDIT:我认为这与LANGUAGE_CODE = 'en-us'
设置有关。当我改变它时,它也改变了日期的格式。它怎么能被覆盖呢?
Django使用l10n将数字、日期等格式化为本地值。改变你的LANGUAGE_CODE是一个很好的点,允许Django加载正确的环境。
除此之外,您还需要通过USE_L10N=True配置l10n的使用见:https://docs.djangoproject.com/en/dev/ref/settings/std: setting-USE_L10N
要使表单字段能够本地化输入和输出数据,只需使用其本地化参数:
class CashRegisterForm(forms.Form):
product = forms.CharField()
revenue = forms.DecimalField(max_digits=4, decimal_places=2, localize=True)
对于日期也可以。
(来自:https://docs.djangoproject.com/en/dev/topics/i18n/formatting/# locale-aware-input-in-forms)
edit:对于在模板中使用,你可以通过:
{% load l10n %}
{{ value|localize }}
或
{{ your_date|date:"SHORT_DATE_FORMAT" }}
第二个是在settings.py
中使用SHORT_DATE_FORMAT欢呼,Marc
use python datetime:
from datetime import datetime
date = models.DateField(blank=False, default=datetime.now().strftime("%d.%m.%Y"))
如果您关心的是日期如何显示(输出格式);您可以使用date
过滤器,如下所示:
{{ obj.date|date:"d.m.Y"}}