Django -更改模型日期字段的默认表示格式



我有一个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"}} 

相关内容

  • 没有找到相关文章

最新更新