我想编写一个装饰器,用于我网站上的所有视图,首先检查登录用户的UserProfile是否具有特定设置。在我的例子中,它是user.get_profile.user_status,值可以是“过期”或“活动”。如果user_status =“已过期”,我想将其重定向到结算帐户更新页面。如果他们活跃,他们可以通过。
我希望成为@must_be_active
或@paywall_check
。
之前从未写过装饰。关于如何最好地开始的想法?
答案 0 :(得分:3)
如果你不写装饰器,这实际上更简单。
from django.contrib.auth.decorators import user_passes_test
def must_be_active( user ):
if .... whatever ....
def paywall_check( user ):
if .... whatever ....
@user_passes_test(must_be_active)
def my_view(request):
do the work
@user_pass_test(paywall_check)
def another_view(request):
do the work
答案 1 :(得分:0)