web-dev-qa-db-fra.com

Comment formater dateTime dans le modèle Django?

Cette:

{{ wpis.entry.lastChangeDate|date:"D d M Y" }}

me donne (pourquoi?):

2009-07-24 21:45:38.986156 

et je ne sais pas comment sauter la partie fraction ...

Dans mon modèle, j'ai:

addedDate = models.DateTimeField(default=datetime.now)
47
IProblemFactory

Vous pouvez utiliser ceci:

addedDate = datetime.now().replace(microsecond=0)

4
Coc B.

C'est exactement ce que vous voulez. Essaye ça:

{{ wpis.entry.lastChangeDate|date:'Y-m-d H:i' }}
138
Rockystech

Je soupçonne wpis.entry.lastChangeDate a été en quelque sorte transformé en chaîne dans la vue, avant d'arriver au modèle.

Afin de vérifier cette hypothèse, vous pouvez simplement vérifier dans la vue si elle a une propriété/méthode que seules les chaînes ont - comme par exemple wpis.entry.lastChangeDate.upper, puis vérifiez si le modèle se bloque.

Vous pouvez également créer votre propre filtre personnalisé , et l'utiliser à des fins de débogage, en le laissant inspecter l'objet et en écrivant les résultats de l'inspection sur la page ou simplement sur la console. Il serait capable d'inspecter l'objet et de vérifier s'il s'agit bien d'un DateTimeField.

Sur un avis indépendant, pourquoi n'utilisez-vous pas models.DateTimeField((auto_now_add=True) pour définir le datetime à la création?

4
rob