작성
·
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 경로로 변경했습니다.
정답은 없지만, 다양하게 고민하시는 모습이 보기 좋습니다.
화이팅입니다. 👍
빠른 답변 감사합니다!