0

我需要一些帮助来学习如何使用过滤器获取“日期时间”值。

我正在努力获取按年份显示销售订单的表格。

如何改进我的代码以获取它?

模型.py

 class Ventas(models.Model):
      codigoventa = models.CharField(max_length=7, unique=True)
      codigocliente = models.ForeignKey('Clientes')
      Fecha_registro = models.DateTimeField("Fecha de edicion", auto_now_add=True) 
      totalventa = models.DecimalField(max_digits=10, decimal_places = 2)
      codigosucursal = models.ForeignKey('Sucursales')
      totalventa = models.IntegerField()

      def __unicode__(self):
          return self.codigoventa
      class Meta:
            ordering = ['-pub_date']

视图.py

def ventas_anio(request):
    ventas = Ventas.objects.filter(Fecha_registro=datetime(2013, 1, 30))
    return render_to_response('ventasanual.html',{'datos':ventas}, context_instance=RequestContext(request))
4

1 回答 1

1

如果您想按特定日期过滤,要么

import datetime
the_day = datetime.date(2013, 1, 30)
Ventas.objects.filter(Fecha_registro__gte=the_day, 
                      Fecha_registro__lt=the_day+datetime.timedelta(1))

或者

Ventas.objects.extra(where=["DATE(Fecha_registro)=%s"], params=['2013-01-30'])

或低效但可行

Ventas.objects.filter(Fecha_registro__year=2013, 
                      Fecha_registro__month=1,
                      Fecha_registro__day=30)

gte, lt, extra, year, monthandday的文档在这里

于 2013-05-30T01:57:21.053 回答