Electronics & Programming

develissimo

Open Source electronics development and programming

  • You are not logged in.
  • Root
  • » Django
  • » Django tutorial: no error displayed when a choice for a poll is not selected. [RSS Feed]

#1 June 14, 2010 14:45:52

Daniel R.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

Django tutorial: no error displayed when a choice for a poll is not selected.


On Jun 14, 2:13 pm, Sithembewena Lloyd Dube <zebr...@gmail.com> wrote:
> Hi all,
>
> I have a "vote" view and "detail" template in the Polls application that I
> am writing. The idea is that the user will see a "vote" page where they can
> select one of two radio buttons for a choice to the poll, and click "vote".
> This takes them to a "results" page where they can view the poll and its
> choices. That works fine. However, if a choice is not selected, the user
> should be sent to the "detail" page, where an error message will be shown
> stating that no choice was selected. This is not happening - when I haven't
> selected a choice, the "vote" page is reloaded upon submitting the form.
>
> Please see the vote view and detail template code below:
>
> *VOTE VIEW*
> def vote(request, poll_id):
>     p = get_object_or_404(Poll, pk=poll_id)
>     try:
>         selected_choice = p.choice_set.get(pk=request.POST)
>     except (KeyError, Choice.DoesNotExist):
>         # Redisplay the poll voting form.
>         *return render_to_response('polls/detail.html', {'poll': p,
> 'error_message': "You didn't select a choice.",
>         }, context_instance=RequestContext(request))*
>     else:
>         selected_choice.votes += 1
>         selected_choice.save()
>         # Always return an HttpResponseRedirect after successfully dealing
>         # with POST data. This prevents data from being posted twice if a
>         # user hits the Back button.
>         return HttpResponseRedirect(reverse('myproject.polls.views.results',
> args=(p.id,)))
>
> *DETAIL TEMPLATE*
> <h1>{{ poll.question }}</h1>
>
> *{% if error_message %}<p><strong>{{ error_messsage }}</strong></p>{% endif
> %}
> *
> <form action="/polls/{{ poll.id }}/vote/" method="post">
>     {% csrf_token %}
>     {% for choice in poll.choice_set.all %}
>         <input type="radio" name="choice" id="choice{{ forloop.counter }}"
> value="{{ choice.id }}" />
>         <label for="choice{{ forloop.counter }}">{{
> choice.choice}}</label><br />
>
>     {% endfor %}
>     <input type="submit" value="Vote" />
> </form>
>
> Any anomalies here?
>
> Thanks.
>
> --
> Regards,
> Sithembewena Lloyd Dubehttp://www.lloyddube.comYou're trying to run before you can walk. Finish the tutorial, then
read the forms framework documentation (http://docs.djangoproject.com/en/1.2/topics/forms/) which will explain how Django does all this for
you.
--
DR.

--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group athttp://groups.google.com/group/django-users?hl=en.

Offline

#2 June 14, 2010 14:47:20

Sithembewena L.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

Django tutorial: no error displayed when a choice for a poll is not selected.


Thanks Daniel :) I am doing the tutorial and nothing else, step by step. I
mispelled the name of my template variable.

Many thanks,
Lloyd

On Mon, Jun 14, 2010 at 3:45 PM, Daniel Roseman <dan...@roseman.org.uk>wrote:

> On Jun 14, 2:13 pm, Sithembewena Lloyd Dube <zebr...@gmail.com> wrote:
> > Hi all,
> >
> > I have a "vote" view and "detail" template in the Polls application that
> I
> > am writing. The idea is that the user will see a "vote" page where they
> can
> > select one of two radio buttons for a choice to the poll, and click
> "vote".
> > This takes them to a "results" page where they can view the poll and its
> > choices. That works fine. However, if a choice is not selected, the user
> > should be sent to the "detail" page, where an error message will be shown
> > stating that no choice was selected. This is not happening - when I
> haven't
> > selected a choice, the "vote" page is reloaded upon submitting the form.
> >
> > Please see the vote view and detail template code below:
> >
> > *VOTE VIEW*
> > def vote(request, poll_id):
> > p = get_object_or_404(Poll, pk=poll_id)
> > try:
> > selected_choice = p.choice_set.get(pk=request.POST)
> > except (KeyError, Choice.DoesNotExist):
> > # Redisplay the poll voting form.
> > *return render_to_response('polls/detail.html', {'poll': p,
> > 'error_message': "You didn't select a choice.",
> > }, context_instance=RequestContext(request))*
> > else:
> > selected_choice.votes += 1
> > selected_choice.save()
> > # Always return an HttpResponseRedirect after successfully
> dealing
> > # with POST data. This prevents data from being posted twice if a
> > # user hits the Back button.
> > return
> HttpResponseRedirect(reverse('myproject.polls.views.results',
> > args=(p.id,)))
> >
> > *DETAIL TEMPLATE*
> > <h1>{{ poll.question }}</h1>
> >
> > *{% if error_message %}<p><strong>{{ error_messsage }}</strong></p>{%
> endif
> > %}
> > *
> > <form action="/polls/{{ poll.id }}/vote/" method="post">
> > {% csrf_token %}
> > {% for choice in poll.choice_set.all %}
> > <input type="radio" name="choice" id="choice{{ forloop.counter
> }}"
> > value="{{ choice.id }}" />
> > <label for="choice{{ forloop.counter }}">{{
> choice.choice}}</label><br />
> >
> > {% endfor %}
> > <input type="submit" value="Vote" />
> > </form>
> >
> > Any anomalies here?
> >
> > Thanks.
> >
> > --
> > Regards,
> > Sithembewena Lloyd Dubehttp://www.lloyddube.com>
> You're trying to run before you can walk. Finish the tutorial, then
> read the forms framework documentation (http://docs.djangoproject.com/> en/1.2/topics/forms/<http://docs.djangoproject.com/%0Aen/1.2/topics/forms/>)
> which will explain how Django does all this for
> you.
> --
> DR.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
>http://groups.google.com/group/django-users?hl=en.
>
>


--
Regards,
Sithembewena Lloyd Dubehttp://www.lloyddube.com--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group athttp://groups.google.com/group/django-users?hl=en.

Offline

#3 June 14, 2010 14:47:27

Sithembewena L.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

Django tutorial: no error displayed when a choice for a poll is not selected.


Problem fixed - the error variable in my template was mispelled.

Thanks.

On Mon, Jun 14, 2010 at 3:13 PM, Sithembewena Lloyd Dube
<zebr...@gmail.com>wrote:

> Hi all,
>
> I have a "vote" view and "detail" template in the Polls application that I
> am writing. The idea is that the user will see a "vote" page where they can
> select one of two radio buttons for a choice to the poll, and click "vote".
> This takes them to a "results" page where they can view the poll and its
> choices. That works fine. However, if a choice is not selected, the user
> should be sent to the "detail" page, where an error message will be shown
> stating that no choice was selected. This is not happening - when I haven't
> selected a choice, the "vote" page is reloaded upon submitting the form.
>
> Please see the vote view and detail template code below:
>
> *VOTE VIEW*
> def vote(request, poll_id):
> p = get_object_or_404(Poll, pk=poll_id)
> try:
> selected_choice = p.choice_set.get(pk=request.POST)
> except (KeyError, Choice.DoesNotExist):
> # Redisplay the poll voting form.
> *return render_to_response('polls/detail.html', {'poll': p,
> 'error_message': "You didn't select a choice.",
> }, context_instance=RequestContext(request))*
> else:
> selected_choice.votes += 1
> selected_choice.save()
> # Always return an HttpResponseRedirect after successfully dealing
> # with POST data. This prevents data from being posted twice if a
> # user hits the Back button.
> return
> HttpResponseRedirect(reverse('myproject.polls.views.results', args=(p.id
> ,)))
>
>
>
> *DETAIL TEMPLATE*
> <h1>{{ poll.question }}</h1>
>
> *{% if error_message %}<p><strong>{{ error_messsage }}</strong></p>{%
> endif %}
> *
> <form action="/polls/{{ poll.id }}/vote/" method="post">
> {% csrf_token %}
> {% for choice in poll.choice_set.all %}
> <input type="radio" name="choice" id="choice{{ forloop.counter }}"
> value="{{ choice.id }}" />
> <label for="choice{{ forloop.counter }}">{{ choice.choice
> }}</label><br />
> {% endfor %}
> <input type="submit" value="Vote" />
> </form>
>
> Any anomalies here?
>
> Thanks.
>
> --
> Regards,
> Sithembewena Lloyd Dube
>http://www.lloyddube.com>



--
Regards,
Sithembewena Lloyd Dubehttp://www.lloyddube.com--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group athttp://groups.google.com/group/django-users?hl=en.

Offline

  • Root
  • » Django
  • » Django tutorial: no error displayed when a choice for a poll is not selected. [RSS Feed]

Board footer

Moderator control

Enjoy the 13th of December
PoweredBy

The Forums are managed by develissimo stuff members, if you find any issues or misplaced content please help us to fix it. Thank you! Tell us via Contact Options
Leave a Message
Welcome to Develissimo Live Support