Django – Formview login required URL 변경

일반 함수에서는 @login_required 데코레이터를 사용하지만, FormView 같은 곳은 아래와 같이 @method_decorator(login_required … 이런식으로 사용한다.

from django.utils.decorators 
import method_decorator

@method_decorator(login_required, name='dispatch')
class CollaboratorView(View):

기본적인 함수 사용법은 많이 있지만, Formview 마다 로그인이 안되었을 때 각각 다른 페이지로 보내고 싶을 때가 있다. 이때 페이지를 지정하는 방법을 검색해서 남겨둔다.

@method_decorator(login_required(login_url="login_message"), name="dispatch")
class ShippingProductFWUpdateView(BSModalUpdateView):

  • login_url=”url이름” 을 파라메터로 넣어주면 된다.
  • 물론 url이름 에 정의된 부분은 url.py 등에 아래처럼 정의가 미리 되어 있어야 한다.
urlpatterns = [
    path("", index, name="index"),
    ...    
path("login_message", login_message_view, name="login_message"),

참고 페이지

Share: Twitter Facebook
Bongjun Hur's Picture

About Bongjun Hur

BJ is a dev.

Seoul, Korea https://devbj.com