サイトに利用規約の同意要件を追加しており、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
。同様に、すべてのビューでこの権限をテストすることも避けたいと思います。もっときれいな方法があるはずです。