2011-08-02 12 views
13

Dlaczego znacznik ukrytego pola wejściowego nie wyświetla się, gdy używam {{ csrf_token }}?Django {{csrf_token}} wyprowadza tylko wartość tokenu, bez ukrytego znacznika wejściowego

Oto urywek z mojego szablonu:

<form action="." method="post"> 
{{ csrf_token }} 

ja spodziewałem się czegoś takiego być generowane:

<form action="." method="post"> 
<input type="hidden" name="csrfmiddlewaretoken" value="0c90dab91e22382cbaa5ef375f709167"> 

ale zamiast tego, to jest HTML, który jest generowany:

<form action="." method="post"> 
0c90dab91e22382cbaa5ef375f709167 

Zrobiłem to wiele razy i działa dobrze w moich innych projektach, ale ja nie wiem, co przegapiłem tym razem.

Mój plik views.py wygląda następująco:

from django.shortcuts import render_to_response 
from django.template import RequestContext 

def home(request): 
    return render_to_response('home.html', 
           context_instance=RequestContext(request)) 

Jak widać używam RequestContext. Moje klasy middleware są zdefiniowane jak to w pliku settings.py:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
) 

Więc używam django.middleware.csrf.CsrfViewMiddleware. Ponadto jestem na Django 1.3.0. Jakieś pomysły?

+3

nie jest to „{% csrf_token%} '- jako tag szablonu, zamiast wyprowadzania' unicode (csrf_token) '? – phoku

+0

Chrzanij to. Nie mogę myśleć ani czytać od razu o drugiej nad ranem. Masz całkowitą rację. Zapisz to jako odpowiedź, a ja to zaakceptuję. Wielkie dzięki;) –

Odpowiedz

28

Musisz użyć go jako tagu {% csrf_token %} nie jako zmienna przekazywana przez Państwa zdaniem {{csrf_token}}

5

używam następny w moich szablonów, aby rozwiązać swój problem:

<input type='hidden' name='csrfmiddlewaretoken' value='{{ csrf_token }}' /> 
+0

w jinja {% csrf_token%} nie działa. – ccsakuweb

Powiązane problemy