発生した問題
事前に以下の通り記述した上で、home.htmlで{% url 'logout' %}
としたところ、ログアウトされず代わりに accounts/logout/ にリダイレクトされた。
project/urls.py
path("accounts/", include("django.contrib.auth.urls")),
表示されたエラー
Method Not Allowed (GET): /accounts/logout/
Method Not Allowed: /accounts/logout/
[08/Jan/2024 00:17:08] "GET /accounts/logout/ HTTP/1.1" 405 0
原因
こちらで回答されている通り、本来はPOSTでなければいけないところ、GETしていたため弾かれていた。
よってhtmlのform
を使用して、以下のように記述することで解決できた。
home.html
<form action='{% url "logout" %}' method='post' name='logout'>
{% csrf_token %}
<a href="javascript:logout.submit()">Logout</a>
</form>