首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -限制超级用户访问url

Django -限制超级用户访问url
EN

Stack Overflow用户
提问于 2010-06-29 17:11:00
回答 3查看 2K关注 0票数 1

在我的urlconf中,我有:

代码语言:javascript
复制
url(r'^sssssh/(.*)', staff_only_app.site.root),

我想要做的是限制超级用户对此应用程序的任何访问。我试过这个:

代码语言:javascript
复制
url(r'^sssssh/(.*)', user_passes_test(staff_only_app.site.root, lambda u: u.is_superuser)),

但是它抱怨说decorate只需要一个参数,而我给了两个参数。

我正在考虑通过functools.partial使用装饰器,但我想我可能会错过一些更明显的解决方案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-09 22:31:43

回复太晚了!...

我认为这只是一个快速和肮脏的语法问题:

代码语言:javascript
复制
url(r'^sssssh/(.*)', user_passes_test(lambda u: u.is_superuser)(staff_only_app.site.root),

^我认为这是将参数传递给装饰器的奇怪但正确的语法。

但转念一想,你只能装饰视图功能,而不是整个网站。

票数 4
EN

Stack Overflow用户

发布于 2010-06-29 21:43:05

编写一个类似于Django的login_required或f.ex的装饰器。这个是http://djangosnippets.org/snippets/254/并装饰视图。

票数 1
EN

Stack Overflow用户

发布于 2011-02-22 19:05:27

使用user_passes_test装饰器。

示例:

代码语言:javascript
复制
from django.contrib.auth.decorators import user_passes_test

@user_passes_test(lambda u: u.is_superuser)

def sample_view(request):
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3139284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档