2009-09-27 33 views
2

我有日期的輕微問題DjangoGoogle App EngineDjango和App Engine中的DateFormat?

我有下面的類,因爲我想在DD/MM/YY形式輸入的日期:

class MyForm(ModelForm): 
     mydate = forms.DateTimeField(input_formats=['%d-%m-%y', '%d/%m/%y']) 
     class Meta: 
      model = MyObject 

這適用於進入數據存儲。 但是,當我使用通用視圖編輯數據時,表單以YYYY-MM-DD的格式返回。任何想法如何改變?

+0

複製 - http://stackoverflow.com/questions/907351/european-date-input-in-django-admin –

回答

3

forms.DateInput需要的格式關鍵字參數,這可以用來控制代表的格式(無論如何,我似乎記得):

class MyForm(ModelForm): 
     mydate = forms.DateField(widget=forms.DateInput(format="%d/%m/%y")) 
     class Meta: 
      model = MyObject 

我結束了繼承Field和Widget,因爲我希望能夠更好地控制格式。

1

A DateTimeField將返回datetime.datetime作爲其值,因此您可以使用該模塊中定義的任何常用方法來格式化數據。在Django模板,你可以使用date,或time過濾器:

{{my_obj.mydate|date:"D d M Y"}} 

它打印一樣的東西:

Wed 09 Jan 2008 

(見http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date瞭解詳細信息)

+0

我知道,但我在談論的格式使用通用視圖時編輯框。我以 –

+0

的形式回到了YYYY-MM-DD的格式啊,看來我誤解了你的問題。 – dcrosta

0

我用

def date_format(self, instance, **kwargs): 
return getattr(instance,self.name) and getattr(instance,self.name).strftime('%d %m %Y') 

from google.appengine.ext.db.djangoforms import DateProperty 
DateProperty.get_value_for_form = date_format