119 votes

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

J'ai des dates au format ISO 8601 dans la base de données, %Y-%m-%d . Cependant, lorsque la date est transmise au modèle, elle se présente comme suit Oct. 16, 2011 .

Y a-t-il un moyen de manipuler le format comme je le souhaite ?

309voto

medmunds Points 837

Dans votre modèle, vous pouvez utiliser l'outil de Django date filtre. Par exemple :

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

Donne :

Anniversaire : 29 janvier 1983

Plus d'exemples de formatage dans le docs sur le filtre de date .

59voto

Ignacio Vazquez-Abrams Points 312628

34voto

Ciro Santilli Points 3341

Définir les deux DATE_FORMAT et USE_L10N

Pour effectuer des changements pour l'ensemble du site dans Django 1.4.1, ajoutez :

DATE_FORMAT = "Y-m-d"

à votre settings.py et le modifier :

USE_L10N = False

puisque l10n a priorité sur DATE_FORMAT

Ceci est documenté à : https://docs.djangoproject.com/en/dev/ref/settings/#date-format

27voto

hardcoderrsl Points 291

Utilisez juste ça :

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

Cela donnera quelque chose comme 2016-10-16 . Vous pouvez utiliser le format que vous voulez.

9voto

kta Points 4702

Afin de modifier le format de la date dans le fichier views.py et de l'affecter ensuite 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) )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X