Как я могу фильтровать и обновлять мою модель Django с помощью created_at

У меня есть две модели

class Records(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    Approved = models.BooleanField(default=False)
    Date = models.DateTimeField(default=datetime.now, blank=True)
    
class Request(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    Approved = models.BooleanField(default=False)
    Date = models.DateTimeField(default=datetime.now, blank=True)

Я хочу, чтобы cron обновлял Record каждые 1 минуту, если Approved в Request будет True

Я попробовал это...

def deposit():
    if Deposit_Request.objects.exists():
        check=Deposit_Request.objects.get()
        with transaction.atomic():
            if check.Approved == True:
                Deposit_Records.objects.filter(user=check.user, Date=check.Date).update(Approved=True)
                Deposit_Request.objects.get().delete()

Я не понимаю, почему эта логика не работает, когда эти два объекта модели были созданы в одно и то же время, и даже когда я подтверждаю datetime, дата, минута и секунда одинаковы.

Вам необходимо указать, какие Request вы хотите обновить.

def user_request(req):
        req_id = req.id
        with transaction.atomic():
            if req.Approved:
                record = Records.objects.filter(user=check.user)
                record.update(Approved=True)
                req.delete()
        return req_id

Метод user_request должен выполняться для каждого объекта запроса.

Пример для вашего задания CRON:

from datetime import datetime
...

today_requests = list(Request.objects.filter(Date=datetime.today()))
updated_requests = [user_request(req) for req in today_requests]
Вернуться на верх