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
-~----------~----~----~----~------~----~------~--~---