2011-04-17 18 views
9

Se includo {% csrf_token%} nel mio modello di modulo e l'importazione RequestContext a mio avviso,django CSRF RequestContext

devo includere qualsiasi altra cosa a mio avviso, o sarà la protezione CSRF essere curato solo essere il seguente:

from django.shortcuts import render_to_response 
from django import forms 
from django.http import HttpResponseRedirect 
from django.template import Template, RequestContext 
from dash.forms import GradeForm 


def register(request): 
    if request.method == 'POST': 
     form = GradeForm(data=request.POST) 
     if form.is_valid(): 
      new_dash_profile = form.save() 
      new_user = form.save() 
      return HttpResponseRedirect("/success/") 
     else: 
      form = RegisterForm() 
     return render_to_response('grade.html',{'form':form}) 

risposta

21

per me, il modo più semplice è quello di aggiungere un RequestContext alla funzione render_to_response

return render_to_response('grade.html', 
          {'form':form}, 
          context_instance=RequestContext(request)) 

Questa è solo una possibilità, l'importazione la cosa formica è che dovresti elaborare il token csrf da qualche parte, e RequestContext lo fa.

Un'altra possibilità è quella di fare ir manualmente:

from django.core.context_processors import csrf 

params = {} 
params.update(csrf(request)) 
return render_to_response('grade.html', params) 
Problemi correlati