Невозможно отфильтровать() пользователей по их полю date_joined

Я хочу подсчитать всех пользователей, у которых дата_joined совпадает с "сегодняшней" датой. У меня есть два пользователя, у которых в поле date_joined стоит сегодняшняя дата, но подсчет всегда возвращает ноль. Возможно, я неправильно фильтрую данные. Вот способы, которыми я пытался фильтровать данные

модели

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()

все эти способы не работали вообще и всегда возвращали нулевое значение. Пожалуйста, объясните мне, что я делаю неправильно.

These are two users with today's date

После того, как я поиграл с кодом некоторое время, я понял, что все способы, которые я пробовал ранее, возвращают ноль, потому что 'date_joined' является DateTimeField, поэтому в коде ниже

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

время не совпадает, поэтому счетчик возвращается как 0.

Итак, я использовал __contains для фильтрации даты. Таким образом, проверяется, содержится ли сегодняшняя дата в поле 'date_joined'. Это возвращает правильное число, т.е. 2.

 all_users_bydate = CustomUser.objects.all().filter(date_joined__contains= datetime.today().date()).count()
Вернуться на верх