Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 5 da Aula 10 - Cadastro de usuários

Realmente fiquei boiando nesse exercício, fiz exatamente como o gabarito aqui, mas não entendi, com o django validaria o campo de email? a validação não está passando por html5? de qualquer maneira minha validação não funciona.

{% extends "base_user.html" %}
{% block body %}

    <form class="form-signin" action="{% url 'register' %}" method="post">
        {% csrf_token %}
        <h2 class="form-signin-heading">Register</h2>

        <input id="id_email" name="email" type="text" class="form-control"
            placeholder="e-mail *" value="{{ form.email.value }}" required autofocus>

        <input id="id_name" name="name" type="text" class="form-control"
            placeholder="Name" value="{{ form.name.value }}" required>

        <input id="id_password" name="password" type="password" class="form-control"
            placeholder="Your Password" value="{{ form.password.value }}" required>

        <input id="id_phone" name="phone" type="text" class="form-control"
            placeholder="Phone" value="{{ form.phone.value }}">

        <input id="id_company_name" name="company_name" type="text" class="form-control"
            placeholder="Company Name" value="{{ form.company_name.value }}">

        <hr/>

        <button class="btn btn-lg btn-primary btn-block" type="submit">Register</button>

        <hr/>

        {% if form.errors %}
        <div class="alert alert-danger">
            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">{{ form.non_field_errors }}</button>
        </div>
        {% endif %}
    </form>

{% endblock %}
3 respostas
solução!

A ideia do exercício é a seguinte: se houver algum erro de validação, seja lá qual for, o formulário volta preenchido com os últimos dados que você digitou. Antes, o formulário era exibido em branco.

Para testar, basta digitar um e-mail inválido dddd.com. Veja que não há o @. Quando houver o erro de validação, o formulário continuará com os dados preenchidos.

Aliás, vi que você alterou os nomes dos atributos do e-mail. O problema disso é que se outras pessoas quiserem te ajudar terão problemas em entender seu código, vai dificuldade. Inclusive se você alterar um atributo precisará lembrar de alterar em outros lugares e por ai vai.

Agora que você já vez, beleza. Mas sugiro não só nesse curso mais em outros treinamentos usar os mesmos nome que o treinamento usa para ajudar aqueles que querem te ajudar. No final, quando você tiver certeza que tudo está funcionando, ai você vai e alterar porque qualquer erro será porque um ou outro lugar ficou faltando alterar o nome.

Agora ficou mais claro Flávio, obrigado pela resposta rápida.

Sobre os nomes dos atributos e classes, urls, etc... sei que não é o recomendado, mas sempre tento escrever o código em inglês, não pela internacionalização do código em sí que não é o foco aqui, mas alterar nomes das variáveis, classes, rotas, arquivos, etc me força a realmente ter que pensar no que estou fazendo e assim consigo absorver mais do curso.

Várias vezes não só nesse como em outros cursos que fiz tive problemas por conta disso que óbvio não faziam parte do escopo do curso, pois foram gerados por mim ao escrever o código, nesses casos evito recorrer ao fórum da alura pois sei que causaria mais confusão e então acabo recorrendo ao bom e velho stackoverflow e em grande parte das vezes acabei aprendendo ainda mais e acrescentando mais bagagem e conhecimento.

Agradeço a preocupação, e parabéns pelos cursos que ministra na Alura, estou curtindo bastante python/django!

Seu argumento sobre internacionalização do seu código me conquistou :)

De boa Bruno, agora é continuar estudando! Sucesso e bom estudo!