<로그인 화면 만들기>
from django.contrib.auth.views import LoginView, LogoutView
from django.urls import path
from accountapp.views import hello_world, AccountCreateView
app_name = "accountapp"
urlpatterns = [
path('hello_world/',hello_world, name='hello_world'),
path('login/', LoginView.as_view(template_name='accountapp/login.html'), name='login'),
path('logout/',LogoutView.as_view(), name='logout'),
path('create/', AccountCreateView.as_view(), name='create'),
]
Python
복사
urls.py
{% extends 'base.html' %}
{% block content %}
<div style="text-align: center">
<div>
<h4>Login</h4>
</div>
<div>
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" class="btn btn-primary">
</form>
</div>
</div>
{% endblock %}
HTML
복사
login.html
next → login_redirect_url → default
<로그인 창으로 들어가는 거 만들기>
<div class="Jichuuu_header">
<div>
<h1 class="Jichuuu_logo">Jichuuu</h1>
</div>
<div>
<span>nav1</span>
<span>nav2</span>
<span>nav3</span>
{% if not user.is_authenticated %}
<a href="{% url 'accountapp:login' %}?next={{ request.path }}">
<span>login</span>
</a>
{% else %}
<a href="{% url 'accountapp:logout' %}?next={{ request.path }}">
<span>logout</span>
</a>
{% endif %}
</div>
</div>
HTML
복사
header.html
이 상태에서 로그인 화면에서 로그인 하면 /accounts/profile/이라는 default 값으로 감
이걸 방지하기 위해서 login_redirect_url을 설정해 줄 거임
settings.py 맨 밑에 밑에 코드 추가하기
LOGIN_REDIRECT_URL = reverse_lazy('accountapp:hello_world')
LOGOUT_REDIRECT_URL = reverse_lazy('accountapp:hello_world')
Python
복사
정리가 안되는데 다시 들어보자 ,,