기본적으로 데코레이터 @permission_required($SOME_PERMISSION)
은 요청한 사용자에게이보기를 요청하는 데 필요한 권한이 있는지 확인하고, 그렇지 않은 경우 로그인 페이지 나 다른 지정된 페이지로 리디렉션됩니다. 예를 들어 사용자가 로그인하지 않은 경우 로그인 페이지로 리디렉션됩니다).
내 문제는 로그인 한 사용자가 로그인 페이지로 리디렉션하고 싶지만 필수 권한이없는 로그인 한 사용자가있을 수 있습니다. 기본적으로 사용자는 로그인 페이지로 리디렉션되고 있습니다. 그는 이미 로그인 했으므로 요청한 페이지로 다시 연결되며 여기서 루프가 발생합니다.
그래서 내가 원하는 것은이 데코레이터의 동작을 변경하는 것입니다 (@permission_required를 사용하는 대신 내보기 함수에서 동등한 코드를 작성하여) 사용자가 로그인하지 않은 요청 된 페이지를 볼 수 없는지 확인하십시오. 그는 로그인했지만 권한이 없으므로 올바른 페이지로 리디렉션됩니다. 어떤 도움을 크게 감상 할 수있다 :)
사전에 감사django 데코레이터 함수 수정, Permissionn_required
답변
는 것처럼, permission_required
에 login_url
매개 변수를 전달 :
:
@permission_required($SOME_PERMISSION, login_url='/my/custom/page')
이렇게하면'@relegal_required' 위의'@ login_required' 데코레이터를 추가해야합니다. 그렇지 않으면 로그인하지 않은 사용자도 사용자 정의 페이지로 리디렉션됩니다. – themanatuf
@themanatuf 감사합니다! 둘 다 함께 사용하면 트릭이되지만, 한가지, URL은 이제 다음과 같이 보입니다 : '.... next =/jobs/tree /', 다음 페이지의 URL이 있음을 의미합니다! (리디렉션의 원인) URL을 위해 sth을해라, 그 다음 = 부분을 가지지 않기 위해? 다시 감사합니다 –
@SpiXel - 개인적으로이 작업을 수행하지는 않았지만 이것을 찾으 셨습니다 : http://stackoverflow.com/questions/10950409/suppress-next-blah-behavior-in-djangos-login -required-decorator 미들웨어 솔루션은 모든 리디렉션에 대해 "다음"을 사용한다고 생각합니다. 그게 네가 원하는지 확신 할 수 없다. 그렇지 않으면 사용자 정의 데코레이터가 최선의 선택 일 수 있습니다. 다시 말하지만, 실제로 이것을 시도하지는 않았지만 작동해야합니다. – themanatuf
나는 당신을 위해 무엇을 찾고있는 것은이 답변라고 생각합니다 How can make Django permission_required decorator not to redirect already logged-in users to login page, but display some message
도움이 되었기를 바랍니다.
다운 투표에 대한 자세한 내용은 무엇입니까? 링크 된 답변은 원래 포스터가 요구하는 것과 정확히 일치하는 사용자 정의 데코레이터를 만드는 방법을 보여줍니다. – themanatuf
누군가가 오늘 #django에있는 아래쪽 화살표에서 약간의 방아쇠를 당긴 것 같습니다. 누가 그걸 알지 못합니다. 그냥 무시하십시오 :-) – scytale
- 1. Django is_staff 권한 데코레이터
- 2. django @login_required 데코레이터 오류
- 3. Ruby의 함수 데코레이터, 파이썬에서와 마찬가지로
- 4. 컴파일시 C 함수 데코레이터 (래퍼)
- 5. Django : 뷰에 mutilple 액세스 제어 데코레이터 적용
- 6. Django 클래스 기반 DetailView/ListView 아약스 데코레이터?
- 7. Django 용 Http 동사 데코레이터? ASP.NET MVC에서
- 8. @login_required 데코레이터 django 1.1 및 Template_name
- 9. Django + 데코레이터 : 기준에 따라 템플릿에 컨텍스트 추가
- 10. Django 신호를 통한 모델 메서드의 데코레이터?
- 11. Django 테스트 : 테스트 케이스에 로그인 데코레이터 사용
- 12. Google App Engine의 Python 함수 데코레이터
- 13. 파이썬에서 인자로 작동하는 중첩 함수 데코레이터
- 14. 데코레이터
- 15. Django 미들웨어의 주소 수정
- 16. Django ModelForms 필드 수정
- 17. user_passes_test 데코레이터 호출 가능 함수에서 Django 요청 객체를 전달하는 방법
- 18. 데코레이터 클래스와 데코레이터 함수의 차이점
- 19. jQuery로 onclick 함수 수정
- 20. jquery datepicker 함수 수정
- 21. javascript 함수 수정
- 22. 런타임시 메서드/함수 수정
- 23. PHP 함수 수정 및
- 24. jquery 함수 수정
- 25. 예상되는 함수 인수가 아닌 WSGIRequest를 가져 오는 장고 데코레이터
- 26. 컨텍스트 프로세서에 데코레이터 적용
- 27. Django 관리자 축소 오류 수정
- 28. django 템플릿의 함수
- 29. django - 여러보기에서 함수 재사용
- 30. 데코레이터 패턴이 자바로 된 데코레이터 패턴
특정 질문을하십시오. "어떤 도움"을 요구하는 것은 아닙니다. –
request.user.is_authenticated()를 사용하십시오. https://docs.djangoproject.com/en/dev/topics/auth/ – Pramod