我尝试在视图中按年,月显示信息顺序,如何改进我的代码以获取它?
提示:我正在编写一份报告,按年份和月份显示销售订单,帮助我
感谢。
views.py
def ventas_mes_anio(request):
ventas = Ventas.objects.filter(Fecha_registro__range=["2011-01-01", "2013-12-31"])
if ventas.is_valid():
enero = Ventas.objects.filter(Fecha_registro__month=1)
febrero = Ventas.objects.filter(Fecha_registro__month=2)
marzo = Ventas.objects.filter(Fecha_registro__month=3)
abril = Ventas.objects.filter(Fecha_registro__month=4)
mayo = Ventas.objects.filter(Fecha_registro__month=5)
junio = Ventas.objects.filter(Fecha_registro__month=6)
julio = Ventas.objects.filter(Fecha_registro__month=7)
agosto = Ventas.objects.filter(Fecha_registro__month=8)
septiembre = Ventas.objects.filter(Fecha_registro__month=9)
octubre = Ventas.objects.filter(Fecha_registro__month=10)
noviembre = Ventas.objects.filter(Fecha_registro__month=11)
diciembre = Ventas.objects.filter(Fecha_registro__month=12)
return render_to_response('ventasxproductosxmes.html',{'datos':ventas,'enero':enero,'febrero':febrero,'marzo':marzo,'abril':abril,'mayo':mayo,'junio':junio,'julio':julio,'agosto':agosto,'septiembre':septiembre,'octubre':octubre,'noviembre':noviembre,'diciembre':diciembre,},context_instance=RequestContext(request))
答案 0 :(得分:0)
您可以使用dict
月份名称而不是单个月份名称变量。 (必须正确设置您的语言环境,以使month_name为您的语言)
import calendar
months = dict(zip(calendar.month_name[1:], [Ventas.objects.filter(Fecha_registro__month=x) for x in xrange(1,13)]))
然后您可以简单地将dict
作为上下文返回。或者,如果您不想在模板方面进行任何更改。
ret = {'datos':ventas}
ret.update(months)
return render_to_response('ventasxproductosxmes.html',ret,context_instance=RequestContext(request))