2011-04-17 16 views
9

अगर मैं अपने प्रपत्र टेम्पलेट और मेरे विचार में आयात RequestContext में {% csrf_token%},Django CSRF RequestContext

मैं मेरे विचार में कुछ और शामिल करने के लिए है या CSRF सुरक्षा का ध्यान रखा जाना होगा शामिल सिर्फ निम्नलिखित हो:

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}) 

उत्तर

21

मेरे लिए, सबसे आसान तरीका है सिर्फ एक संभावना है, आयात कर रहा है render_to_response समारोह

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

यह करने के लिए एक RequestContext जोड़ने के लिए है चींटी चीज यह है कि आपको कहीं सीएसआरएफ टोकन को संसाधित करना चाहिए, और RequestContext ऐसा करता है।

एक अन्य संभावना ir मैन्युअल रूप से करना है:

from django.core.context_processors import csrf 

params = {} 
params.update(csrf(request)) 
return render_to_response('grade.html', params) 
संबंधित मुद्दे