Comment puis-je changer le format de modèle de date Django par défaut?


100

Je dates au format ISO 8601 dans la base de données, %Y-%m-%d. Cependant, lorsque la date est transmise au modèle, cela ressemble à quelque chose comme Oct. 16, 2011.

Existe-t-il un moyen de manipuler le format selon ce que je veux?

Réponses:



276

Dans votre modèle, vous pouvez utiliser le datefiltre de Django . Par exemple:

<p>Birthday: {{ birthday|date:"M d, Y" }}</p>

Donne:

Anniversaire: 29 janv. 1983

Plus d'exemples de mise en forme dans la documentation du filtre de date .


Je pense que cela ne fonctionne que si la date est fournie en tant qu'objet datetime. Que faire s'il ne s'agit que d'une chaîne passée de la vue?
Mohammed Shareef C

2
Pour une chaîne arbitraire contenant une date / heure, je l'analyserais probablement dans une date / heure python dans le code de vue. (Ou même plus tôt si possible - partout où cette chaîne de date arrive pour la première fois dans mon code.) Mais si vous voulez vraiment utiliser des chaînes pour passer des datetimes à vos modèles Django, cette réponse semble utile.
medmunds

Exemple ci-dessus parfait à utiliser dans le fichier modèle.
Vinod Patidar


20

Utilisez simplement ceci:

{{you_date_field|date:'Y-m-d'}}

Cela montrera quelque chose comme 2016-10-16 . Vous pouvez utiliser le format comme vous le souhaitez.


8

Afin de changer le format de date dans le views.py, puis attribuez-le au modèle.

# get the object details 
home = Home.objects.get(home_id=homeid)

# get the start date
_startDate = home.home_startdate.strftime('%m/%d/%Y')

# assign it to template 
return render_to_response('showme.html' 
                                        {'home_startdate':_startDate},   
                                         context_instance=RequestContext(request) )  


6

Si vous avez besoin d'afficher une date et une heure courtes (08/11/2018 03:23), vous pouvez le faire comme ceci:

{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}

Détails pour cette balise ici et plus sur les dates selon le format donné ici

Exemple:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.