As a total noob - I do that how? On Nov 3, 2009, at 9:14 AM, DrBloodmoney wrote:
> Make sure that you have the CSRF middleware installed. > > >> On Nov 3, 2009 12:09 PM, "Todd Blanchard" <[email protected]> wrote: >> >> What did I screw up? >> >> TemplateSyntaxError at /polls/1/ >> Invalid block tag: 'csrf_token' >> Request Method: GET >> Request URL: http://localhost:8000/polls/1/ >> Exception Type: TemplateSyntaxError >> Exception Value: >> Invalid block tag: 'csrf_token' >> Exception Location: /Library/Python/2.6/site-packages/django/ >> template/__init__.py in invalid_block_tag, line 335 >> Python Executable: /usr/bin/python >> Python Version: 2.6.1 >> >> >> The forms bit. >> >> views.py: >> >> # Create your views here. >> from django.template import Context, loader >> from mysite.polls.models import Choice, Poll >> from django.http import HttpResponse >> from django.shortcuts import render_to_response, get_object_or_404 >> from django.http import Http404 >> from django.template import RequestContext >> # ... >> >> def index(request): >> latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5] >> return render_to_response('polls/index.html', >> {'latest_poll_list': latest_poll_list}) >> >> def detail(request, poll_id): >> p = get_object_or_404(Poll, pk=poll_id) >> return render_to_response('polls/detail.html', {'poll': p}, >> context_instance=RequestContext >> (request)) >> >> def results(request, poll_id): >> return HttpResponse("You're looking at the results of poll %s." >> % poll_id) >> >> 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 >> ('mysite.polls.views.results', args=(p.id,))) >> >> detail.html: >> >> <h1>{{ poll.question }}</h1> >> >> {% if error_message %}<p><strong>{{ error_message }}</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> >> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---

