1
resposta

Problema com as mensagens usando bootstrap

Bom dia. As mensagens de sucesso (messages.SUCCESS) e erro (messages.ERROR) não estão aparecendo no formato correto. No arquivo __alertas.html, utilizei o seguinte código:

{% if messages %}
    {% for message in messages%}
    <div>
     <div class="alert alert-{{message.tags}}}" role="alert">
         {{ message }}
     </div>
    </div>
    {% endfor %}
{% endif %}

Segue trecho de código na view:

from django.contrib import auth, messages
...
def cadastro(request):
    if request.method == 'POST':
        nome = request.POST['nome']
        email = request.POST['email']
        senha = request.POST['password']
        senha2 = request.POST['password2']
        if campo_vazio(nome):
            messages.error(request, 'O campo nome não pode ficar em branco.')         
            return redirect('cadastro')

Quando ocorre esse erro, o texto da mensagem aparece na cor preta com fundo branco, enquanto que o certo seria texto e fundo vermelhos.

1 resposta

Verifique se você está importando o pacote nas suas views e no seu settings corretamente.

Configuração no settings.py

from django.contrib.messages import constants as messages

MESSAGE_TAGS={
    messages.ERROR:'danger',
    messages.SUCCESS:'success',
}

Partial:

{% load static %}
{% if messages %}
{% for message in messages %}

<div class="alert-{{message.tags}}">
    <p class="mensagem">{{message}}</p>
</div>

{% endfor %}

{% endif %}

Nas views:

from django.contrib import auth,messages

def cadastra_instrutor(request):
    """Cadastra instrutores no banco se as validações forem satisfeitas"""
    if request.method=='POST':

        identificador_usuario=request.user.id
        nome_instrutor=request.POST['nome_instrutor']
        cpf_instrutor=request.POST['cpf_instrutor']
        rg_instrutor=request.POST['rg_instrutor']
        endereco_instrutor=request.POST['endereco_instrutor']
        telefone_instrutor=request.POST['telefone_instrutor']
        email_instrutor=request.POST['email_instrutor']
        situacao_instrutor=request.POST['situacao_instrutor']
        patologias_instrutor=request.POST['patologias_instrutor']
        data_nascimento_instrutor=request.POST['data_nascimento_instrutor']
        date_time_obj = datetime.strptime(data_nascimento_instrutor, '%Y-%m-%d')

        dados={
            'title':'Cadastra Instrutor',
            'identificador_usuario':identificador_usuario,
            'nome_instrutor':nome_instrutor,
            'cpf_instrutor':cpf_instrutor,
            'rg_instrutor':rg_instrutor,
            'endereco_instrutor':endereco_instrutor,
            'telefone_instrutor':telefone_instrutor,
            'email_instrutor':email_instrutor,
            'situacao_instrutor':situacao_instrutor,
            'patologias_instrutor':patologias_instrutor,
            'data_nascimento_instrutor':data_nascimento_instrutor,
            'perfil':perfil_adm(request.user.id),

        }




        filtro1= Instrutor.objects.filter(identificador_usuario=identificador_usuario)
        if 'data_nascimento_instrutor' not in request.POST:
            messages.error(request,'Data de nascimento não pode estar vazia')
            return render(request,'interno/cadastro/form_instrutores.html',dados)