2010-06-29 3 views
1

에 대한 URL 액세스를 제한, 난이 :장고 - 슈퍼 유저 내 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)), 

을하지만 그 장식이 정확히 1 인자를 불평, 나는 두 가지를했다.

나는 functools.partial을 통해 꾸미기를 currying하는 것에 대해 생각하고 있지만 좀 더 분명한 해결책을 놓치고 있다고 생각합니다.

+1

왜 urls.py에서 수행하고 싶은가? views.py – KillianDS

+1

@KillianDS urls.py에서이 작업을 수행하고 싶습니다. 내가 쓰지 않은 재사용 가능한 앱. – Agos

답변

3

매우 늦게 답장 ...

내가 그냥 신속하고 더러운 구문 끊기 생각 :

url(r'^sssssh/(.*)', user_passes_test(lambda u: u.is_superuser)(staff_only_app.site.root), 

가^나는 이것이 이상한 생각하지만, 데코레이터에 인수를 전달하기위한 올바른 구문.

그러나 두 번째 생각에서 전체 사이트가 아닌보기 기능 만 꾸밀 수 있습니다.

-1

user_passes_test 데코레이터를 사용하십시오.

예 :!

from django.contrib.auth.decorators import user_passes_test 

@user_passes_test(lambda u: u.is_superuser) 

def sample_view(request): 
+1

제발, 왜 내가 (에드) URL이 아니라보기에 그것을하고 싶어에 대한 질문과 아래의 의견을 읽어보십시오. – Agos