3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】Djangoのログアウト実装でエラー「HTTP 405」が出た件について

Posted at

発生した問題

事前に以下の通り記述した上で、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>

参考:
ログアウトボタンをクリックするとエラー
HTMLのAタグでPOSTする方法

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?