2009-09-27 11 views
2

J'ai une légère question avec des dates en Django et Google App Engine:DateFormat dans Django et App Engine?

J'ai la classe suivante parce que je veux l'entrée de la date sous forme de JJ/MM/AA:

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

Cela fonctionne pour entrer dans le magasin de données. Cependant, lorsque j'utilise une vue générique pour éditer les données, le formulaire revient au format AAAA-MM-JJ. Des idées sur la façon de changer cela?

+0

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

Répondre

3

forms.DateInput prend un mot-clé format argument, et cela peut être utilisé pour contrôler le format qui est représenté (je me souviens, de toute façon):

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

J'ai fini par sous-classer le Field et le Widget, car je voulais être capable de contrôler les formats encore plus.

1

Un DateTimeField retournera un datetime.datetime sa valeur, de sorte que vous pouvez utiliser l'une des méthodes habituelles définies dans ce module pour formater les données. Dans les modèles de Django, vous pouvez utiliser les date ou time filtres:

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

qui imprime quelque chose comme:

Wed 09 Jan 2008 

(pour plus de détails Affichez http://docs.djangoproject.com/en/dev/ref/templates/builtins/#date)

+0

Je sais que, mais je parle du format dans un Zone d'édition lors de l'utilisation d'une vue générique Je le récupère dans le format AAAA-MM-DD sous la forme –

+0

Ah, il semble que j'ai mal interprété votre question. – dcrosta

0

J'utilisé

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 
Questions connexes