我正在向我们的网站添加服务条款接受要求,并试图找出在Django 身份验证框架内处理此问题的最佳方法。
为简单起见,这里有一个UserProfile
模型:
class UserProfile(models.Model):
user = models.OneToOneField(User)
accepted_tos_at = models.DateTimeField(default=None, editable=False, null=True)
所以基本上我想要做的是检查它accepted_tos_at
不是None
(或者实际上大于最后一次 TOS 修订的日期)。如果它通过了这个测试,那么我们就可以正常进行身份验证,但是如果它是None
除login
且tos_display
不可访问的所有视图。
我挂断的是你应该如何在全球范围内做这件事?我不想在我的每一个视图中添加user_passes_test
装饰器,同样我想避免在我的每一个视图中测试这个权限。必须有更清洁的方法。