python - 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 %}
解决方案
您需要从 中减去当前datetime()
,self.date_joined
而不是相反的方式,否则它将是负7 天,始终小于 7 天,所以:
class CustomUser(AbstractUser):
def free_trial(self):
return (timezone.now() - self.date_joined) < timedelta(days=7)
推荐阅读
- excel - 保存路径不存在时的宏错误处理
- javascript - 当存在多个字段时,提交按钮不起作用
- docker - 我的剧本没有下载具有相同标签名称的更新图像
- azure-functions - 通过 WebProxy HTTP 请求触发 Azure Function
- bash - 在 shell 中使用 awk 调用函数时出现问题
- html - Mat数据表分页和排序不起作用
- react-native - TouchableOpacity 使整个屏幕在本机反应中可触摸
- python - 生成高程剖面
- c# - 使用 IValueConverter 类更改文本框的背景
- python - 根据一串列表过滤列表