Python 如何从管理命令访问每个新帐户的“日期”列?

Python 如何从管理命令访问每个新帐户的“日期”列?,python,django,Python,Django,我正在用Django为未经验证的用户编写一个自定义管理命令,其中每个新帐户在未验证电子邮件确认的情况下超过24小时,然后标记为is_deleted=true,我的代码看起来是这样的,但是我如何访问每个新帐户的date_joined User = get_user_model() def handle(self, *args, **kwargs): now = datetime.datetime.utcnow().replace(tzinfo=utc) timediff = now -

我正在用Django为未经验证的用户编写一个自定义管理命令,其中每个新帐户在未验证电子邮件确认的情况下超过24小时,然后标记为
is_deleted=true
,我的代码看起来是这样的,但是我如何访问每个新帐户的
date_joined

User = get_user_model()

def handle(self, *args, **kwargs):
  now = datetime.datetime.utcnow().replace(tzinfo=utc)
  timediff = now - self.date_joined
  if User.objects.filter(is_superuser=True):
    pass
  else:
    if timediff.seconds / 3600 - 24 > 0:
      for user in User.objects.filter(date_joined__gt=timediff, signup_confirmation=0):
        user.is_deleted = True
        user.save()
        return True
    return False

像这样试试。我猜是因为打字错误

for user in User.objects.filter(date_joined__gte=timediff, signup_confirmation=0):

不要在for循环中运行SQL这是非常糟糕的,因为您对数据库的访问次数太多,这会降低数据库的运行速度。使用django bulk_update代替for循环


def句柄(自身、*args、**kwargs):
now=datetime.datetime.utcnow()
last_24_hours=now-datetime.timedelta(小时=24)
User.objects.filter(
加入日期=最后24小时,
注册确认=0)。更新(是否已删除=True)
返回真值