Olá, Clovis! Entendo sua preocupação com a LGPD e a necessidade de permitir que os usuários excluam suas próprias contas. Para adicionar essa funcionalidade, você pode criar uma nova rota e uma nova função de view, semelhante ao que fizemos para o logout.
Aqui está um exemplo de como você pode fazer isso:
- Primeiro, você precisa criar uma nova rota em
urls.py
:
from django.urls import path
from usuarios.views import login, cadastro, logout, excluir_conta # Importe a nova função
urlpatterns = [
path('login', login, name='login'),
path('cadastro', cadastro, name='cadastro'),
path('logout', logout, name='logout'),
path('excluir_conta', excluir_conta, name='excluir_conta'), # Adicione a nova rota
]
- Em seguida, você precisa criar a função
excluir_conta
em views.py
:
from django.contrib import messages
from django.contrib.auth import get_user_model
from django.shortcuts import redirect
def excluir_conta(request):
user = get_user_model()
if request.method == 'POST':
user.objects.filter(id=request.user.id).delete()
messages.success(request, "Conta excluída com sucesso!")
return redirect('login')
- Por fim, você precisa adicionar um botão ou um link em seu template para permitir que o usuário acesse essa rota. Aqui está um exemplo de como você pode fazer isso em
login.html
:
<a href="{% url 'excluir_conta' %}">Excluir Conta</a>
Lembre-se de que esta é uma operação sensível e, em uma aplicação real, você provavelmente gostaria de pedir ao usuário para confirmar sua ação antes de excluir a conta.
Outro ponto pensando mais em MVP e produto, um caminho interessante seria deixar claro para o usuário em algum lugar na plataforma sobre a possibilidade de exclusão da conta sendo feita após enviar um e-mail para "lgpd@empresa.com.br" por exemplo. Neste caso, ainda fazendo sentido com a LGPD.
Espero ter ajudado e bons estudos!