Перво-наперво: ваш взгляд должен 1 / принимать только зарегистрированных пользователей и 2 / только POST-запросы (вам определенно не нужен GET-запрос для удаления чего-либо из вашей базы данных).Кроме того, это:
User.objects.filter(username=request.user)
бесполезно - у вас уже есть текущий пользователь в request.user
- и потенциально опасно, если ваш бэкэнд аутентификации допускает дублирование имен пользователей.
и это:
return render(request, "students/account_deleted.html", context) and redirect("students:logout")
, конечно, неправильно.Представление возвращает один единственный HTTP-ответ, вы не можете вернуть два (это не имеет никакого смысла), и вы не можете "и" два ответа вместе (ну, вы можете, но результат определенно не тот, который вы ожидаете -прочтите FineManual об операторе and
).
Правильное решение - 1 / вручную выйти из системы (ответ voodoo-burger), 2 / использовать структуру сообщений длясообщите пользователю, что ее учетная запись была удалена, и 3 / перенаправьте на домашнюю страницу (вы ВСЕГДА хотите перенаправить после успешного сообщения, cf https://en.wikipedia.org/wiki/Post/Redirect/Get для причины).