在我的urlconf中,我有:
url(r'^sssssh/(.*)', staff_only_app.site.root),我想要做的是限制超级用户对此应用程序的任何访问。我试过这个:
url(r'^sssssh/(.*)', user_passes_test(staff_only_app.site.root, lambda u: u.is_superuser)),但是它抱怨说decorate只需要一个参数,而我给了两个参数。
我正在考虑通过functools.partial使用装饰器,但我想我可能会错过一些更明显的解决方案。
发布于 2011-09-09 22:31:43
回复太晚了!...
我认为这只是一个快速和肮脏的语法问题:
url(r'^sssssh/(.*)', user_passes_test(lambda u: u.is_superuser)(staff_only_app.site.root),^我认为这是将参数传递给装饰器的奇怪但正确的语法。
但转念一想,你只能装饰视图功能,而不是整个网站。
发布于 2010-06-29 21:43:05
编写一个类似于Django的login_required或f.ex的装饰器。这个是http://djangosnippets.org/snippets/254/并装饰视图。
发布于 2011-02-22 19:05:27
使用user_passes_test装饰器。
示例:
from django.contrib.auth.decorators import user_passes_test
@user_passes_test(lambda u: u.is_superuser)
def sample_view(request):https://stackoverflow.com/questions/3139284
复制相似问题