Archivo basado en año / mes Django
Soy nuevo en Django y empecé una aplicación. Hice los modelos, las vistas, las plantillas, pero quiero agregar algún tipo de archivo al final de la página, algo como esto.http://www.flickr.com/photos/ionutgabriel/3990015411/.
Así que quiero enumerar todos los años y junto a ellos todos los meses de ese año. Los meses que tengamos publicaciones para ser enlaces y otros no. También quiero traducir los nombres de los meses porque los necesito en rumano.
Lo que he hecho hasta ahora es:
en mi vista:
def archive(request):
arch = Post.objects.dates('date', 'month', order='DESC')
archives = {}
for i in arch:
tp = i.timetuple()
year = tp[0]
month = tp[1]
if year not in archives:
archives[year] = []
archives[year].append(month)
else:
if month not in archives[year]:
archives[year].append(month)
return render_to_response('blog/arhiva.html', {'archives':archives})
y en mi plantilla:
{% for years, months in archives.items %}
{{ years }}
{% for month in months %}
<a href="{{ years }}/{{ month }}">{{ month }}</a>
{% endfor %}
<br />
{% endfor %}
esto devuelve algo como:
2008 10
2009 10 9
2007 10
pero no puedo clasificarlos en absoluto ... por año o por cualquier cosa, y tampoco sé cómo agregar todos los meses (los nombres), los quiero así:
2009 Ian Feb Mar Apr Mai Iun Iul Aug Sept Oct Noi Dec
2008 Ian Feb Mar Apr Mai Iun Iul Aug Sept Oct Noi Dec
2007 Ian Feb Mar Apr Mai Iun Iul Aug Sept Oct Noi Dec
Con enlace en los meses que tengan entradas.
¡Gracias por tu ayuda!
PD. Lo siento por mi ingles
LE: Tal vez puse la pregunta de manera incorrecta, sé cómo obtener fechas, pero no sé cómo formatearlas para parecerse a estas:
2009 Ian Feb Mar Apr Mai Iun Iul Aug Sept Oct Noi Dec
2008 Ian Feb Mar Apr Mai Iun Iul Aug Sept Oct Noi Dec
2007 Ian Feb Mar Apr Mai Iun Iul Aug Sept Oct Noi Dec
todo lo que puedo obtener dearch = Post.objects.dates('date', 'month', order='DESC')
con
{{ archives }}
en plantilla es algo como:
[datetime.datetime(2009, 10, 1, 0, 0), datetime.datetime(2009, 9, 1, 0, 0),
datetime.datetime(2008, 10, 1, 0, 0), datetime.datetime(2007, 10, 1, 0, 0)]
entonces he intentado un bucle:
{% for archive in archives %}
{{ archive }} <br />
{% endfor %}
y consiguió:
2009-10-01 00:00:00
2009-09-01 00:00:00
2008-10-01 00:00:00
2007-10-01 00:00:00
Después de eso intenté algo como esto:
{% for archive in archives %}
{{ archive|date:"Y: m" }} <br />
{% endfor %}
y consiguió:
2009: 10
2009: 09
2008: 10
2007: 10
Aquí estoy atascado y no sé cómo formatear los datos para poder obtener distintos años con todos los meses y solo los meses que tienen entradas para ser enlaces ...
¿Algunas ideas?
¡Gracias de antemano!