【问题标题】:DateFormat in Django and App Engine?Django 和 App Engine 中的日期格式?
【发布时间】:2009-09-27 22:53:39
【问题描述】:

DjangoGoogle App Engine 中的日期有点小问题:

我有以下课程,因为我想以 DD/MM/YY 的形式输入日期:

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

这适用于进入数据存储区。 但是,当我使用通用视图编辑数据时,表单会以 YYYY-MM-DD 的格式返回。关于如何改变它的任何想法?

【问题讨论】:

标签: django google-app-engine


【解决方案1】:

forms.DateInput 采用格式关键字参数,这可用于控制所表示的格式(我似乎记得,反正):

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

我最终继承了 Field 和 Widget,因为我希望能够更多地控制格式。

【讨论】:

    【解决方案2】:

    DateTimeField 将返回 datetime.datetime 作为其值,因此您可以使用该模块中定义的任何常用方法来格式化数据。在 Django 模板中,您可以使用 datetime 过滤器:

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

    打印如下内容:

    Wed 09 Jan 2008
    

    (详见http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date

    【讨论】:

    • 我知道这一点,但我说的是使用通用视图时编辑框中的格式。我以 YYYY-MM-DD 的格式将其取回
    【解决方案3】:

    我用过

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-07
      • 2022-01-23
      • 1970-01-01
      • 2023-03-07
      • 2012-06-01
      • 1970-01-01
      • 2010-12-06
      • 2013-02-22
      相关资源
      最近更新 更多