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['choice']) > > 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 Dube http://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 at http://groups.google.com/group/django-users?hl=en.