Selezionare Anni distinti e mesi per Django ARCHIVIO
-
21-08-2019 - |
Domanda
Voglio fare una pagina archive_index per il mio sito Django. Tuttavia, il punto di vista generico su base cronologica in realtà non sono di alcun aiuto. Voglio che il dizionario restituito dalla fine di avere tutti gli anni ei mesi per i quali esiste almeno un'istanza del tipo di oggetto. Quindi, se il mio blog è iniziato nel settembre 2007, ma non c'erano posti nel mese di aprile 2008, ho potuto ottenere qualcosa di simile
2009 - Jan, Feb, Mar 2008 - Jan, Feb, Mar, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec 2007 - Sep, Oct, Nov, Dec
Soluzione
Questo vi darà un elenco di date distacco uniche:
Posts.objects.filter(draft=False).dates('post_date','month',order='DESC')
Naturalmente non potrebbe essere necessario il progetto del filtro, e il cambiamento 'POST_DATE' al nome del campo, ecc.
Altri suggerimenti
ho trovato la risposta alla mia domanda.
E 'in questa pagina nella documentazione.
C'è una funzione chiamata date che vi darà date distinte. Così posso fare
Entry.objects.dates ( 'pub_date', 'mese') per ottenere una lista di oggetti datetime, uno per ogni anno / mese.
Si dovrebbe essere in grado di ottenere tutte le informazioni che descrivono dalle viste incorporati. Puoi essere più preciso su ciò che non si può ottenere? Questo dovrebbe avere tutto il necessario:
django.views.generic.date_based.archive_month
Pagina di riferimento (cercare la stringa di cui sopra in quella pagina)