python - template - Seleccione Distintos años y meses para la página de archivo de Django
ifequal django (3)
Quiero hacer una página archive_index para mi sitio django. Sin embargo, las vistas genéricas basadas en fechas realmente no son de ninguna ayuda. Quiero que el diccionario devuelto por la vista tenga todos los años y meses para los que exista al menos una instancia del tipo de objeto. Entonces, si mi blog comenzó en septiembre de 2007, pero no hubo publicaciones en abril de 2008, podría obtener algo como esto
2009 - Jan, Feb, Mar 2008 - Jan, Feb, Mar, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec 2007 - Sep, Oct, Nov, Dec
Debería poder obtener toda la información que describe desde las vistas integradas. ¿Puedes ser más específico en cuanto a lo que no puedes obtener? Esto debería tener todo lo que necesita:
django.views.generic.date_based.archive_month
Página de referencia (busque la cadena de arriba en esa página)
Encontré la respuesta a mi propia pregunta.
Está en esta página en la documentación.
Hay una función llamada fechas que te dará fechas distintas. Entonces puedo hacer
Entry.objects.dates (''pub_date'', ''month'') para obtener una lista de objetos datetime, uno para cada año / mes.
Esto le dará una lista de fechas de publicación únicas:
Posts.objects.filter(draft=False).dates(''post_date'',''month'',order=''DESC'')
Por supuesto, es posible que no necesite el filtro de borrador, y cambie ''post_date'' a su nombre de campo, etc.