根据https://stackoverflow.com/a/8715790/210481中的一条评论,我同意,如果一个依赖于其他装饰器,我们应该避免使用多个装饰器。Django:在其他装饰器中重新使用login_required装饰器
所以,在这个例子中,如果我们有一个装饰器“active_required”用于活动用户,我们不应该在同一个视图上同时使用active_required和login_required。
我们应该有“login_required”装饰器“调用”在“active_required”之内。
是否有可能使用django附带的标准“login_required”装饰器来完成它?
我的要求是: 1)如果用户没有通过验证,我应该重定向他LOGIN_URL 2)如果用户进行身份验证(通过login_required),但不活跃,我要他重定向到一个页面“重新激活”,他的帐户 3)如果用户进行身份验证并激活,用户可以访问视图提前
感谢
因为你想在3个可能的情况下有不同的行为,有两个装饰看起来不错 – second 2012-03-01 19:11:29
正如我所说的,你只想用一个装饰器而不是两个做两个不同的测试? – sergzach 2012-03-01 19:27:48
我想要2个不同的行为,但一个取决于另一个。 @ChrisPratt,当我想到这件事时,我在看你的评论。只有用户名和密码匹配时,标准登录功能才会检查“活动”标志。我可以考虑其他例子:在我的网站中,用户可以创建列表,只有列表的所有者可以编辑列表,因此我需要检查用户是否已登录,以及它是否为列表的所有者。这只是另一个例子。 – duduklein 2012-03-01 20:42:41