Postanowiłem liznąć Pythona i Django więc przerabiam sobie ten samouczek:
http://www.django.pl/documentation/tutorial04/
No ale nie wyrabiam już z CSRF, gogluje, próbuję i nie działa (na Django 1.3). Jest tu ktoś obeznany z tym ? Chodzi o błąd "CSRF verification failed. Request aborted."
Jak coś to wrzucam kod :>
<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="Głosuj" />
</form>
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):
# Pokaz ponownie formularz do glosowania.
return render_to_response('polls/detail.html', {
'poll': p,
'error_message': "Nie wybrales zadnej opcji",
})
else:
selected_choice.votes += 1
selected_choice.save()
# Zawsze zwróć HttpResponseRedirect po udanym obsłużeniu danych z POST.
# To zapewnia, że dane nie zostaną wysłane dwa razy, jeżeli użytkownik
# kliknie w przeglądarce przycisk Wstecz .
return HttpResponseRedirect(reverse('mysite.polls.views.results',
args=(p.id,)))