ऐसे फॉर्म हैं जो सीएसआरएफ सुरक्षा के लिए आवश्यक POST विधि का उपयोग करते हैं? मैं एक किताब का अनुसरण कर रहा हूं और कोड उदाहरण 403 त्रुटियों को फेंक देते हैं। मैंने कुछ खोज किया और ऐसा लगता है कि मुझे अपने सभी रूपों में सीएसआरएफ को सक्षम करने की आवश्यकता है।Django: POST फॉर्म को सीएसआरएफ की आवश्यकता है? प्राप्त नहीं करता है?
मेरे प्रश्न हैं:
करता Django अब की आवश्यकता होती है सभी पोस्ट रूपों CSRF से संरक्षित किया जाना है?
- सभी मैं में '{% csrf_token%}' पूरा करने के लिए इस 'django.middleware.csrf.CsrfViewMiddleware', वापसी render_to_response (टेम्पलेट, शब्दकोश, context_instance = RequestContext (अनुरोध) जोड़ने है करते हैं, और जोड़ने की जरूरत है
इसी प्रपत्र? मैं यहाँ कुछ भी याद आ रही है?
जब मैं ऐसा करते हैं, प्रपत्र ठीक काम करता है। जब इन टुकड़ों को याद आ रही हैं के किसी भी, यह करने में विफल रहता 403 मैं सिर्फ यकीन है कि मैं इसे कर रहा हूँ बनाना चाहते दाएं। :)
अग्रिम धन्यवाद।
संपादित करें:
किसी कारण के लिए इस कोड मेरे लिए कोई मतलब नहीं है, लेकिन यह किसी भी त्रुटि वापस नहीं करता है के लिए। कृपया आदिम सत्यापन को अनदेखा करें क्योंकि मुझे पुस्तक के उस अनुभाग में नहीं मिला है जहां यह अभी तक करने का अधिक प्रभावी तरीका दिखाता है।
def contact(request):
errors = []
if request.method == 'POST':
if not request.POST.get('subject',''):
errors.append('Enter a subject')
if not request.POST.get('message',''):
errors.append('Enter a message')
if request.POST.get('email', '') and '@' not in request.POST['email']:
errors.append('Enter a valid email address')
if not errors:
send_mail(
request.POST['subject'],
request.POST['message'],
request.POST.get('email', '[email protected]'), ['[email protected]'],)
return HttpResponseRedirect('/contact/thanks/')
return render_to_response('contact_form.html', { 'errors': errors }, context_instance=RequestContext(request))
मेरा मुद्दा इस दृश्य कार्य की अंतिम पंक्ति के साथ है। इसे केवल तभी कहा जाता है जब request.method! = POST। यह मेरे लिए पूरी तरह से गलत लगता है। जब मैं पोस्ट कर रहा हूं तो क्या मुझे "context_instance = RequestContext (अनुरोध)" नहीं बुलाया जाना चाहिए?