如何检查模型对象创建时间是否超过10分钟?

时间:2017-12-25 18:47:12

标签: python django

models.py

@python_2_unicode_compatible
class UserAuthToken(models.Model):

    email = models.ForeignKey(UserSubEmail)
    token = models.CharField(max_length=34, unique=True)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return "AuthToken for %s" % self.email

我想检查令牌创建时间和现在之间的经过时间因此,如果在超过10分钟之前创建令牌,我可以识别此令牌无效。

views.py

def create_email_confirm_key(request, uid, token):
    try:
        user_authtoken = UserAuthToken.objects.get(uid=uid)
    except (TypeError, ValueError, OverflowError, User.DoesNotExist):
        user_authtoken = None

    if not 'user_authtoken is created before more than 10minutes' :
        This token is valid and do something

如何检查the token creatednow之间的时间是否超过10分钟?

1 个答案:

答案 0 :(得分:2)

您始终可以使用django.utils.timezone来计算当前时间的增量:

TThread.CreateAnonymousThread(procedure ()
  begin
    TThread.Synchronize(nil, procedure ()
      begin
        Edit1.SelectAll();
      end);
  end).Start

但我建议你看一下django' Cryptographic signing。它允许您verify timestamped signatures并为您处理所有增量计算。