Monday, September 29, 2014

Re: Newbie Question: Django Tutorial Part 4 - Exception Issue

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUKWAKAAoJEB267zEX1rwQojIP/2YaujALbmpFcRvb7XbCv+a3
+hHnde/lOkzZs/Eqykol2syCJGQI8QXSv4CZ8PR/Vwww0D+TKFDxigcARs4J4p2P
keRwr3NJOF+qGzB8mzhwb6o1dmaCNpFlQvTXtFgzRja0SrxZrMGFsNzUOFBdrH9w
N46CZFLUX82YImHhT7O2gINtDrX1o+6qDUITwAbP4QsKar50crxKOjKE0+h2OTqs
yMUIk/u391LO7DSvaL1TouIN1WP1hg/f/PbkBzrS/Iq89B3XQA5gRPq1FLJw7aH3
8E4S78QX8TXJu/J1V00rrUU9i/KmtSjdp280uPgPwZBixi71pBR3LmoZqqkk7RYx
rKQctPEwOgnYtguAulL9a/N3Rrlw2umM0oljcXZ3wGkes8WJCEngcSZMCnYRQIv+
BvTRuVm16y7KP22nS36XYR2qPY2rm0LS1uXd2pMgQ9iFbIyGpDKns64neUUMAmwg
RaGEwP5uanM0+ppSLeURjJDl4cu9ffGxzPiLaQ0zIhZ2Jp4qYRmiG8mbYOfgtsuB
TSGo3kcllnIb2ZUVpiTigGT/te7iyj3TbAVj1d5vKKnC84t/D2K3Jv9Gvi/Uoyy7
XoBe98egXOz1JBRiRWZiIgG3I+SpNVCuu8VapQf9GTrHlnYqCKgpjOBGw5gzYnJq
ZrWdO77f9ydYc+jVAWJT
=2b7g
-----END PGP SIGNATURE-----
No, that's not the cause, the lack of it would be. That line shows the content of 'error_message' when it does exist and has a value other than None. But if you have it in your template the error must be somewhere else in your code. Must be a simple syntax mistake you didn't notice, either in the template file or in the vote view.

To be sure that your code is raising an exception you can place a print statement right after the except, before the call to render. Replace the call to render with these lines, they do the same but also print a message in the console:

    except (KeyError, Choice.DoesNotExist):
        # redisplay the question voting form
        context = {
            'question': p,
            'error_message': "You didn't select a choice.",
        }
        print("context: ", context)
        return render(request, 'polls/detail.html', context)


Click vote again and see what's the output when you click on "Vote" without selecting any choice. The text of the print statement will show up in the console where you launched `python manage.py runserver`.

If you see the output "context: " and the 'error_message' string with the actual message, then you have a syntax mistake in your template. Otherwise it's in your view.

Cheers


On 29 Sep 2014, at 14:55, zaiks0105 <lahtin@gmail.com> wrote:

I do. Is that line causing the behavior?



On Monday, September 29, 2014 7:15:47 AM UTC-4, Daniel Rus Morales wrote:
Hi Zaiks0105,

Do you have the following line in "your polls/templates/polls/detail.html"?

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}

On 29 Sep 2014, at 12:48, zaiks0105 <lah...@gmail.com> wrote:

Hi,

I am following Django official tutorial and have unanswered issue at part 4, https://docs.djangoproject.com/en/1.7/intro/tutorial04/. Here is the exception handling code,

    except (KeyError, Choice.DoesNotExist):          # Redisplay the question voting form.          return render(request, 'polls/detail.html', {              'question': p,              'error_message': "You didn't select a choice.",          })

When I run the server and click on [Vote] without selecting a choice, the page does NOT show me the error message. The same voting page comes back as if [Vote] was not clicked.
I checked my lines and everything seems identical per tutorial.

Any help appreciated!
Thanks


--
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 django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/69aaa1bb-5371-4aec-ae1f-fb44880e46b3%40googlegroups.com.
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 django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/2adefa94-7801-48ad-af1f-1d5ec10ada86%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment