Come posso modificare il formato del modello di data Django predefinito?


100

Io ho date in formato ISO 8601 nel database, %Y-%m-%d. Tuttavia, quando la data viene trasmessa al modello, risulta qualcosa di simile Oct. 16, 2011.

C'è un modo in cui posso manipolare il formato come preferisco?

Risposte:



276

All'interno del tuo modello, puoi utilizzare il datefiltro di Django . Per esempio:

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

Dà:

Compleanno: 29 gennaio 1983

Altri esempi di formattazione nei documenti del filtro della data .


Penso che funzioni solo se la data viene fornita come oggetto datetime. E se fosse solo una stringa passata dalla vista?
Mohammed Shareef C

2
Per una stringa arbitraria contenente una data / ora, probabilmente la analizzerei in un datetime python nel codice di visualizzazione. (O anche prima, se possibile, ovunque la stringa della data arrivi per la prima volta nel mio codice.) Ma se vuoi davvero usare le stringhe per passare i datetimes ai tuoi modelli Django, questa risposta sembra utile.
medmunds

Perfetto sopra l'esempio da utilizzare nel file modello.
Vinod Patidar


20

Usa questo:

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

Questo mostrerà qualcosa come 2016-10-16 . Puoi utilizzare il formato che desideri.


8

Per modificare il formato della data in views.py e quindi assegnarlo al modello.

# 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

Se devi mostrare data e ora brevi (11/08/2018 03:23 am) puoi farlo in questo modo:

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

Dettagli per questo tag qui e ulteriori informazioni sulle date in base al formato dato qui

Esempio:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.