Criar novo app
python manage.py startapp usuarios
Adicinar no arquivo setup/settings.py
INSTALLED_APPS = [
...
'usuarios.apps.UsuariosConfig',
]
Criar arquivo de rotas usuarios/urls.py
Alterar setup/urls.py
urlpatterns = [
...
path('', include('usuarios.urls')),
] ...
Adicionar as views em usuarios/views.py
Criar arquivos html em templates/usuarios/
Criar arquivo usuarios/forms.py
Alterar arquivo e view usuarios/views.py
...
from usuarios.forms import LoginForms
def login(request):
form = LoginForms()
return render(request, "usuarios/login.html", {"form": form})
...
Alterar arquivos html templetes/usuarios/
Alterar arquivo usuarios/views.py para adicionar as validações e mensagens. Alterar arquivo templates/galeria/base.html e adicionar as mensagens.
{% for message in messages %}
<div class="alert alert-primary">
<p id="messages">{{message}}</p>
</div>
{% endfor %}
Opção de logout:
Alterar arquivo usuarios/views.py
def logout(request):
auth.logout(request)
messages.success(request, "Logout efetuado com sucesso!")
return redirect('login')
Alterar aarquivo usuarios/urls.py
path('logout', logout, name='logout'),
Alterar o arquivo usuarios/forms.py, adicionando regras dde vaalidações do formulário.
def clean_nome_cadastro(self):
nome = self.cleaned_data.get('nome_cadastro')
if nome:
nome = nome.strip()
if ' ' in nome:
raise forms.ValidationError('Espaços não são permitidos nesse campo')
else:
return nome
def clean_senha_2(self):
senha_1 = self.cleaned_data.get('senha_1')
senha_2 = self.cleaned_data.get('senha_2')
if senha_1 and senha_2:
if senha_1 != senha_2:
raise forms.ValidationError('Senhas não são iguais')
else:
return senha_2
Alterar arquivo templates/usuarios/cadastro.html para colocar as mensagens de erro de validações.
{% for error in field.errors %}
<div class="alert alert-danger">
{{error}}
</div>
{% endfor %}
Criar arquivo templates/galeria/partials/_alertas.html
Alterar arquivo templates/galeria/base.html
Alterar arquivo setup/settings.py
from django.contrib.messages import constants as messages
MESSAGE_TAGS = {
messages.ERROR: 'danger',
messages.SUCCESS: 'success'
}
Alterar pasta galeria/partions para partions