Django中日期格式的本地化

时间:2012-07-11 09:37:23

标签: django

我正在开发一款应该支持不同语言和风格的应用,例如美国,英国和德国。

现在查看documentation,例如似乎没有直接支持美国日期格式。看来这部分需要手工完成。

所以我不断深入研究文档并找到了this:

{{ value|date:"D d M Y" }}

当我在我的代码中尝试这个时,这似乎不适用于表单:

{{form.birth_date|date:"D d M Y"}}

似乎需要在表单字段本身设置格式。

更多研究显示在2009:

中的Stackoverflow中提出了类似的问题

这个解决方案可行,但看起来非常适合这样一个简单的问题。 Django自2009年以来走过了漫长的道路,所以我想知道是否有更好的方法可以直接进入ModelForm?

假设我们有以下代码:

型号:

class ConversationHistory(models.Model):
    contact_date        = models.DateField(_(u"Conversation Date"))

形式:

class ConversationForm(ModelForm):        
    class Meta:
        model = ConversationHistory

我可以将以下内容添加到ModelForm:

widgets = { 'contact_date': forms.DateInput(format='M d, Y') }

这是正确的本地化方式吗?如果我想将格式更改为Brtish English或German,该怎么办?所以我觉得我在这里失踪了...

非常感谢,

更新

我现在试过这个:

widgets = { 'contact_date': forms.DateInput(format='SHORT_DATE_FORMAT') }

但是日期显示为SHORT_DATE_FORMAT。

我错过了什么?

2 个答案:

答案 0 :(得分:0)

You're looking for the x format.或者最糟糕的情况是,你只需要确定格式,然后让翻译人员知道它。

答案 1 :(得分:0)

我一直致力于为{2}用dojo解决这个问题!如果您使用dojango整合,我最终会找到以下作品。

someDate = DateField(widget=DateInput(attrs={'constraints':'{datePattern:\'dd/MM/yyyy\', strict:true}'))

forms.py

我不知道是否有帮助

相关问题