to do this, i just have to put the @never_cache on my View's method, right? (after importing 'from django.views.decorators.cache import never_cache'). For some reason, when i did this, the page started and i already got the message "usuário já existe"(username already exists) and still the problem i stated occurred. Is it something i am doing wrong? Like, i should remover the return renders from my function after putting @never_cache?
On Tuesday, October 31, 2017 at 11:25:28 AM UTC-3, Matthew Pava wrote: > > Try using the @never_cache decorator on your login view. > > > https://docs.djangoproject.com/en/1.11/topics/http/decorators/#django.views.decorators.cache.never_cache > > > > > > *From:* [email protected] <javascript:> [mailto: > [email protected] <javascript:>] *On Behalf Of *fábio andrews > rocha marques > *Sent:* Tuesday, October 31, 2017 9:15 AM > *To:* Django users > *Subject:* Re: do i always have to reload/return render a page to show > the errors? if i press go back on browser, i see screens with the error > message > > > > That's a great suggestion. Sure, it will help on situations where i just > want the fields to be completed. But there are some fields that require a > little more feedback than that. Like, if a username already exists... I > check if it already exists using a View and checking on the database. So, > after the View checks if the user already exists, i have to render the page > again to show the error. > > On Tuesday, October 31, 2017 at 8:37:05 AM UTC-3, Eric Pascual wrote: > > Hello > Sorry or I misunderstood your problem but what about using the required > field attribute ? It will make such controls and messages be handled > directly on the client side. > Best regards. > > Eric PASCUAL > > Centre Scientifique et Technique du Bâtiment > 290 route des Lucioles > 06560 SOPHIA ANTIPOLIS > http://www.cstb.fr > > > ________________________________________ > From: [email protected] [[email protected]] on behalf > of fábio andrews rocha marques [[email protected]] > Sent: Tuesday, October 31, 2017 00:46 > To: Django users > Subject: do i always have to reload/return render a page to show the > errors? if i press go back on browser, i see screens with the error message > > Let's say i have a "register a new user" View and on this page, when the > user forgets to inform a password or a username, i show a message to him on > the same page saying "you forgot the password". The way i do this is by > doing this(on my View.py in a function called cadastrarprofessor): > > nomeusuario = request.POST['usuario'] #username > nomesenha = request.POST['senha'] #password > nomeemail = request.POST['email'] #email > > if not nomeusuario: > return render(request,'cadastro.html',{'cadastrorealizadocomsucesso': > False, 'error_message': "informe um usuário", > 'nomeemailcadastro':nomeemail, 'nomesenhacadastro':nomesenha}) > elif not nomesenha: > return render(request,'cadastro.html',{'cadastrorealizadocomsucesso': > False, 'error_message': "informe uma senha", 'nomeemailcadastro':nomeemail, > 'nomeusuariocadastro':nomeusuario}) > elif not nomeemail: > return render(request,'cadastro.html',{'cadastrorealizadocomsucesso': > False, 'error_message': "informe um email", 'nomesenhacadastro':nomesenha, > > 'nomeusuariocadastro':nomeusuario}) > > And my template for this page(cadastro.html) is like this: > <meta charset="utf-8"/> > <h1>Cadastro</h1> > <form action="{% url 'cadastrarprofessor' %}" method="post"> > {% csrf_token %} > <label for="usuario">Usuário: </label> > {% if nomeusuariocadastro %} > <input id="usuario" type="text" name="usuario" value={{ > nomeusuariocadastro }}> > {% else %} > <input id="usuario" type="text" name="usuario" value=""/> > {% endif %} > > > ... (DO THE SAME TO SENHA/PASSWORD AND EMAIL) > > <input type="submit" value="Cadastrar"/> > </form> > <form action="{% url 'index' %}" method="post"> > <input type="submit" value="Voltar"/> > {% csrf_token %} > </form> > {% if cadastrorealizadocomsucesso is True %}<b>cadastro realizado com > sucesso!</b>{% endif %} > {% if error_message %}<p><strong>{{ error_message }}</p></strong>{% endif > %} > > So, every time the user forgets to mention a username or email or password > in this screen, i use render to redirect the user to the same page but this > time displaying a error_message. Let's say he did forget to fill the > textfield with a username... he goes back to the same page and sees the > error message. After that, let's say everything is right and he finally > registers a new user, he sees "cadastro realizado com sucesso"(sucessfully > registered new user) and stays on the same page. But when he goes back a > page(pressing "back" on the browser), instead of going back to the page > before the cadastro.html, he goes back to the same page cadastro.html but > displaying the error message for the "you forgot to mention your username". > I don't want him to go back to the same page with error message, i want to > make him go back to my main menu. > Is there a better approach to display error messages on the same page > instead of using return render like this: > return render(request,'cadastro.html',{'cadastrorealizadocomsucesso': > False, 'error_message': "informe um usuário", > 'nomeemailcadastro':nomeemail,'nomesenhacadastro':nomesenha}) > ? > > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]<mailto: > [email protected]>. > To post to this group, send email to [email protected]<mailto: > [email protected]>. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/3f70cd29-9edc-4272-a27e-534ee7f1e1a2%40googlegroups.com > < > https://groups.google.com/d/msgid/django-users/3f70cd29-9edc-4272-a27e-534ee7f1e1a2%40googlegroups.com?utm_medium=email&utm_source=footer>. > > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/f73d478e-44ee-40dd-ba61-851f0e0ec5af%40googlegroups.com > > <https://groups.google.com/d/msgid/django-users/f73d478e-44ee-40dd-ba61-851f0e0ec5af%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/ad9b6c53-88be-4825-98de-e9d1088fb4fe%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

