我有一个带有DateField的模型,设置如下:
date = models.DateField(blank=False, default=datetime.now)
每次我将该字段数据放入模板({{obj.date}}
)时,都会以这种格式显示:
July 24, 2014
我希望将其永久更改为以下格式:
24.7.2014
我也有一个搜索页面,可以按日期字段搜索数据 - 我希望能够以这种格式搜索。 我怎么能这样做?
编辑:我认为它与LANGUAGE_CODE = 'en-us'
设置有关。当我改变它时,它也改变了日期的格式。怎么可能被淹没?
答案 0 :(得分:2)
Django使用l10n将数字,日期等格式化为本地值。更改LANGUAGE_CODE是一个好点,允许Django加载正确的环境。
除此之外,您还需要通过USE_L10N = True配置l10n的使用 请参阅:https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-USE_L10N
要启用表单字段以本地化输入和输出数据,只需使用其localize参数:
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)
编辑:要在模板中使用,您只需通过以下方式简单格式化日期:
{% load l10n %}
{{ value|localize }}
或
{{ your_date|date:"SHORT_DATE_FORMAT" }}
第二个是在settings.py
中使用SHORT_DATE_FORMAT 欢呼,马克答案 1 :(得分:1)
使用python datetime:
from datetime import datetime
date = models.DateField(blank=False, default=datetime.now().strftime("%d.%m.%Y"))
答案 2 :(得分:1)
如果您关注的是日期的显示方式(输出格式);您可以使用 private void DrawingForm_FormClosing(object sender, FormClosingEventArgs e)
{
this.axAcroPDF.Dispose();
Application.DoEvents();
CoFreeUnusedLibraries(); }
[System.Runtime.InteropServices.DllImport("ole32.dll")]
static extern void CoFreeUnusedLibraries();
过滤器,如here所述:
date
这里是Django docs。