Python Django-暂停/停用帐户N秒

Python Django-暂停/停用帐户N秒,python,django,python-3.x,Python,Django,Python 3.x,在我的Django应用程序中,如果用户输入错误密码超过7次,那么我想暂停/停用他们的帐户10秒钟 我执行一个If语句,查看错误的密码是否输入了7次以上,这样就可以了 在if语句中,我想将user.is\u active设置为False10秒钟,这样他们就不能登录了。10秒后,我希望将user.is\u active设置回True,以便他们可以再次尝试登录 我将如何实现此功能?多谢各位 更新- views.py: if user.active_after > current:

在我的Django应用程序中,如果用户输入错误密码超过7次,那么我想暂停/停用他们的帐户10秒钟

我执行一个If语句,查看错误的密码是否输入了7次以上,这样就可以了

在if语句中,我想将user.is\u active设置为False10秒钟,这样他们就不能登录了。10秒后,我希望将user.is\u active设置回True,以便他们可以再次尝试登录

我将如何实现此功能?多谢各位

更新- views.py:

if user.active_after > current:
                    return JsonResponse({'message': 'Yes! Not locked'}, status=200)
models.py

active_after = models.DateTimeField(auto_now=True)
我收到的错误信息: TypeError:无法比较初始偏移量和感知偏移量的日期时间


有人知道如何解决这个问题吗?

一种方法是阻止前端的用户(即使用javascript,…)。如果您还想添加后端,可以添加
datetime
字段,例如
user.active\u after
,每个模型只应在该时间之后处于活动状态

然后,当您获得错误的密码时,您可以将该字段更改为:

current =  datetime.datetime.now()

# add 10 seconds to current time
user.active_after = current + datetime.timedelta(0,10)

最明显的方法是在代码中加入
sleep(10)
。如果这不是您想要的,请详细说明。@JohnGordon-Django可以部署在并行请求处理程序系统下。在这种情况下,假设用户同时在另一个选项卡中尝试另一个密码,服务器将测试该密码,因为用户配置文件未正确停用@我希望能温和地提醒OP考虑这样的问题。谢谢你的回应。如果用户只能在user.active\u after time之后激活,您将如何实现该功能。@eWee您可以在执行任何操作之前检查当前时间(例如,检查另一个密码重试)。如果该时间小于“活动后”时间,则停止该操作。否则,您会意识到用户处于活动状态。我尝试添加您请求的功能,但一直遇到此错误。你知道怎么解决这个问题吗?@eweee好吧,那是另一回事。你们可以在这里找到新问题的答案:谢谢你们给予的所有支持。我现在走上了正确的道路。