인프런 커뮤니티 질문&답변

KyungCheol Koh님의 프로필 이미지

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

로그인 처리

django에 LOGIN_URL = '/accounts/login/'의 의미?

작성

·

340

0

"로그인 처리" 동영상에서 (1분 14초) LOGIN_URL = '/accounts/login/' 때문에 app 이름을 accounts으로 하신다고 하셨는데 결국 urls.py에서 새롭게 정의를 하고 있어서 결국에는 global_settings.py 안에 있는 LOGIN_URL을 안쓰고 있는게 아닌가요?

template_name이 registration/login.html로 설정되어 있어서 accounts/registration/login.html로 만드는게 더 좋을까요
?

from django.contrib.auth.views import LoginView

class LoginView(RedirectURLMixin, FormView):
    """
    Display the login form and handle the login action.
    """

    form_class = AuthenticationForm
    authentication_form = None
    template_name = "registration/login.html"
    redirect_authenticated_user = False
    extra_context = None

답변 1

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

settings의 LOGIN_URL 설정은 LoginView에서 사용하는 설정이 아니라, login_required 장식자 등에서 로그인이 필요하다고 판단이 될 때 이동하는 주소를 정의하는 설정입니다.

디폴트로 "/accounts/login/" 값이 설정되어있습니다. accounts 이름과 맞춰줄려고 accounts 이름의 장고 앱을 만들었습니다. 다른 이름을 쓰셔도 되고, 그에 맞춰 URL Pattern도 정의하시고 settings LOGIN_URL 설정도 맞춰주시면 됩니다.

LoginView 클래스의 디폴트 template_name 설정은 registration/login.html 인데요. 그대로 사용하시는 것도 좋습니다. 저는 accounts 앱 내에서 LoginView 기능을 커스텀하기 때문에 accounts 경로로 변경했습니다.

정답은 없지만, 다양하게 고민하시는 모습이 보기 좋습니다.

화이팅입니다. 👍

빠른 답변 감사합니다!