In [97]: cust = CustomerProfile.objects.get(pk=100)
In [98]: CustomerProfile.objects.filter(user__date_joined=datetime.datetime(2017, 7, 28))
Out[98]: <QuerySet []>
In [99]: CustomerProfile.objects.filter(user__date_joined=datetime.datetime(2017, 7, 28, 14, 43, 51, 925548))
Out[99]: <QuerySet [<CustomerProfile: George George's customer profile>]>
In [100]: cust
Out[100]: <CustomerProfile: George George's customer profile>
In [101]: cust.user.date_joined
Out[101]: datetime.datetime(2017, 7, 28, 14, 43, 51, 925548)
我不确定为什么它只是在2017/07/28日期工作。为什么只有日期才空?我怎样才能获得仅包含日期而不是所有内容的最后一个查询集datetime.datetime(2017, 7, 28, 14, 43, 51, 925548)
?
答案 0 :(得分:1)
您可以使用documentation中的__date
,或查看this answer - 有很多很好的解决方案。
答案 1 :(得分:1)
您遇到此问题的原因是您尝试搜索特定的日期时间。这意味着,您正在寻找日期和时间的组合。因此,当您创建datetime.datetime
对象datetime.datetime(2017, 7, 28)
时,基本上创建了一个时间为0小时0分0秒的日期。
为了仅按日期过滤,您可以使用__date
属性来比较日期 。
所以,你的比较看起来像是:
CustomerProfile.objects.filter(user__date_joined__date=datetime.datetime(2017, 7, 28))