मैंने Django - CSRF verification failed और django और POST विधि से संबंधित कई प्रश्न (और उत्तर) पढ़े हैं। render_to_response_call पोस्ट विधि हमेशा 403 निषिद्ध
- उपयोग RequestContext: सबसे अच्छा बल्कि नहीं काम के लिए मुझे जवाब में से एक https://stackoverflow.com/a/4707639/755319
अनुमोदित सभी उत्तर सुझाव है कम से कम 3 बातें है के रूप में सुझाव {% csrf_token%} POST पद्धति
- साथ हर रूप में settings.py
में MIDDLEWARE_CLASSES की जाँच करें मैं बिल्कुल किया है, लेकिन अभी भी त्रुटि दिखाई दिया। मैं Django 1.3.1 (Ubuntu 12.04 रिपोजिटरी से) और अजगर 2.7 (ubuntu से डिफ़ॉल्ट)
का उपयोग यह मेरा दृश्य है:
# Create your views here.
from django.template import RequestContext
from django.http import HttpResponse
from django.shortcuts import render_to_response
from models import BookModel
def index(request):
return HttpResponse('Welcome to the library')
def search_form(request):
return render_to_response('library/search_form.html')
def search(request):
if request.method=='POST':
if 'q' in request.POST:
q=request.POST['q']
bookModel = BookModel.objects.filter(title__icontains=q)
result = {'books' : bookModel,}
return render_to_response('library/search.html', result, context_instance=RequestContext(request))
else:
return search_form(request)
else:
return search_form(request)
और यह मेरा टेम्पलेट (search_form.html) है:
{% extends "base.html" %}
{% block content %}
<form action="/library/search/" method="post">
{% csrf_token %}
<input type="text" name="q">
<input type="submit" value="Search">
</form>
{% endblock %}
मैंने सर्वर को पुनरारंभ किया है, लेकिन 403 वर्जित त्रुटि अभी भी है, यह बता रही है कि सीएसआरएफ सत्यापन विफल रहा है।
मैंने 2 सवाल:
- कैसे इस त्रुटि को ठीक करने के लिए?
- डीजेंगो में "पोस्ट" बनाना इतना मुश्किल क्यों है, मेरा मतलब है कि इसे वर्बोज़ बनाने के लिए कोई विशिष्ट कारण है (मैं PHP से आया हूं, और इससे पहले कभी ऐसी समस्या नहीं मिली)?
यही काम करता है, आपका जवाब के लिए धन्यवाद। लेकिन कैसे और क्यों? क्या आप स्पष्टीकरण दे सकते हैं? – goFrendiAsgard
https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-to-use-it - बिंदु # 3 – zubinmehta
पढ़ें क्योंकि आपके दृश्य में 'csrf_token' बनाया जाना चाहिए ताकि django पास हो सके यह टेम्पलेट के लिए। आपकी स्थिति में, चूंकि आपका खोज दृश्य टोकन नहीं बनाता है, इसलिए आपके टेम्पलेट में '{% csrf_token%}' 'खाली स्ट्रिंग (कोई नहीं) 'है और परिणाम पृष्ठ सत्यापन – FallenAngel