Это действительно зависит от того, что вы хотите, чтобы ваше приложение делало. Что вы хотите случиться, когда перейдете на /logout
? Если вы хотите предоставить своим пользователям выход из системы, просто перейдя туда, вы можете просто обрабатывать запросы GET и POST вместе. (По предложению @Beste), например:
def logout(request):
auth.logout(request)
return redirect('login')
Это дает дополнительное преимущество, заключающееся в том, что вы можете выйти из любого места на сайте, просто используя гиперссылку на этот URL.
Если вы неЧтобы этого не произошло, я бы предложил увеличить 405 (метод не разрешен), например:
from django.http import HttpResponse
def logout(request):
if request.method == "POST":
auth.logout(request)
return redirect('login')
return HttpResponse(status_code=405)
И да, что бы вы ни делали, вам нужно будет где-то перечислить его в своем urls.py
. Или вы можете даже использовать HttpResponseNotAllowed
(см. здесь )