首页 > 解决方案 > Django:如何检查用户是否在过去 7 天内注册?

问题描述

我试图让用户在注册此功能后 7 天内可以访问我的应用程序:

from datetime import datetime, timedelta
from django.utils import timezone
from django.utils.timezone import localdate

    class CustomUser(AbstractUser):
    
        def free_trial(self):
            if (self.date_joined - timezone.now()) < timedelta(days=7):
                return True

但是使用超过 7 天前的帐户进行测试,我仍然可以看到下面的 h1 标签

  {% if user.free_trial %}
    <h1> Your trial has started </h1>
    
    {% endif %}

标签: pythonpython-3.xdjango

解决方案


您需要从 中减去当前datetime()self.date_joined而不是相反的方式,否则它将是7 天,始终小于 7 天,所以:

class CustomUser(AbstractUser):
    
    def free_trial(self):
        return (timezone.now() - self.date_joined) < timedelta(days=7)

推荐阅读