如何排除Django中当天创建的项目

时间:2014-02-26 07:46:38

标签: python django datetime django-queryset

我正在尝试exclude()查询,以排除在用户配置文件当天创建的对象。用户的user.created字段为DateTimeField,但我想要排除与用户在同一日期上创建的所有对象:

我正在尝试:

my_objects = MyClass.objects.exclude(created__contains=user.created.date())

但它会抛出此错误:Warning: Incorrect datetime value: '%2013-09-14%' for column 'created' at row 1

有更好的方法或方法来解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

比较yearmonthday

d = user.created
my_objects = MyClass.objects.exclude(
    created__year=d.year,
    created__month=d.month,
    created__day=d.day
)

或与日期(包括)和第二天(不包括)进行比较

d = user.created.date()
my_objects = MyClass.objects.exclude(
    created__gte=d,
    created__lt=d + datetime.timedelta(days=1)
)