无法使用 date_joined 字段过滤()用户

unable to filter() users with their date_joined field

我想计算 date_joined 与“今天”日期匹配的所有用户。我有两个用户在 date_joined 字段中有今天的日期,但计数始终 returns 为零。我可能没有正确过滤数据。这些是我尝试过滤数据的方式

型号

class CustomUser(AbstractBaseUser, PermissionsMixin):
    
    email = models.EmailField( unique= True)
    full_name = models.CharField(max_length=255)
    phone_no = models.CharField(max_length=10, blank= True)
    address = models.CharField(max_length=500, blank= True)
    plan = models.CharField(max_length=255, blank= True)
    age = models.CharField(max_length=2, blank= True)

    date_joined = models.DateTimeField(default=timezone.now)

观看次数

from datetime import datetime, date

def dashboard(request):

    all_users = CustomUser.objects.all().exclude(is_staff = True).count()

    all_users_bydate = CustomUser.objects.all().filter(date_joined= datetime.today()).count()

    print(all_users_bydate)
all_users_bydate = CustomUser.objects.all().filter(date_joined= datetime.today().date()).count()
all_users_bydate = CustomUser.objects.all().filter(date_joined= datetime.today().date()).count()

甚至试图显式过滤

all_users_bydate = CustomUser.objects.all().filter(date_joined= date(2021, 12, 11)).count()

所有这些方法都不起作用,总是归零。请指正我做错了什么。

所以在玩了一段时间代码之后,我理解的是我之前尝试过的所有返回零的方法,因为'date_joined”是一个 DateTimeField,因此,在下面的代码中

all_users_bydate = CustomUser.objects.all().filter(date_joined= datetime.today().date()).count()

时间未匹配,因此返回的计数为 0。

所以我所做的是使用 __contains 来过滤日期。因此,这将检查今天的日期是否包含在 'date_joined' 字段中。这 returns 正确计数,即 2.

 all_users_bydate = CustomUser.objects.all().filter(date_joined__contains= datetime.today().date()).count()