Django DateField查询

时间:2012-09-18 12:46:09

标签: django datetime

我是Django(1.4.1)的新手,我有一个这样的模型:

class Expediente(models.Model):
    numero_expediente = models.IntegerField()
    ano_expediente = models.IntegerField()
    data_expediente = models.DateField(blank=False, null=False)
    urgencia = models.IntegerField()
    complexidade = models.IntegerField(null=True)
    numero_copia = models.IntegerField()
    posse = models.IntegerField()
    grupo = models.IntegerField(null=True)

我正在尝试使用日期范围进行查询:

now = datetime.now()
lista_expedientes = Expediente.objects.all().order_by('ano_expediente'

data_inicio = datetime.combine(now+timedelta(-30), now.timetz())
data_fim = datetime.combine(now, now.timetz())

exp_antiguidade[0] = lista_expedientes.filter(data_expediente__range=(data_inicio,  data_fim))

我已尝试使用__gte __range和其他人进行查询,但最后我总是遇到错误:

  

异常类型:TypeError

     

异常值:需要一个整数

我认为我需要将日期时间转换为整数...

任何解决方案?

提前致谢!

1 个答案:

答案 0 :(得分:3)

data_expedienteDateField,因此它需要一个有效的Date对象,但您要提供一个Datetime对象。您必须修复以下内容:

from datetime import datetime, timedelta

now = datetime.today().date() # get a Date object
data_inicio = now + timedelta(days=30)