मैं अजगर के लिए नया हूँ। Django के लिए भी नया। मैं एक AJAX अनुरोध करने की कोशिश कर रहा हूं और here निर्देशों का पालन करता हूं। सबसे पहले, सीएसआरएफ कुकी को पुनर्प्राप्त करने का नतीजा हमेशा शून्य था, इसलिए मुझे sure_csrf_cookie नामक एक सजावटी विधि मिली। समस्या यह है कि यह एक दृश्य के लिए पूछता है, और मुझे नहीं पता कि किस पास पास करना है और जहां मैं इसका संदर्भ प्राप्त कर सकता हूं। कोड काफी सरल है:मैं sure_csrf_cookie का उपयोग कैसे करूं?
from django.shortcuts import render_to_response
from django.core.context_processors import csrf
from django.views.decorators.csrf import ensure_csrf_cookie
def csv_to_xform(csv, template):
return render_to_response(template, { "data": "it works!" })
क्या मुझे कक्षा आधारित दृश्य का उपयोग करने की आवश्यकता है? यदि हां, तो क्या कुकी सेट करने का कोई बेहतर तरीका है? मैं here वर्णित विधि का उपयोग नहीं करना चाहता, क्योंकि मैं मान को मैन्युअल रूप से प्रबंधित नहीं करना चाहता हूं।
कोड के बाकी इस प्रकार है:
sandbox.html:
<!doctype html>
<html>
<head>
<title>Sandbox</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="/static/js/csrf.js"></script>
<script type="text/javascript">
$(function() {
$('#send-csv-btn').click(function() {
$.post('/csv', {
data: '1, 2, 3',
success: function (response) {
console.debug(response);
},
error: function (response) {
console.debug(response);
}
});
});
});
</script>
</head>
<body>
<form>
{% csrf_token %}
<input type="button" id="send-csv-btn" />
</form>
</body>
</html>
urls.py:
urlpatterns = patterns('',
url(r'^$', 'dkobo.formbuilder.views.main', name='fb'),
url(r'^admin/', include(admin.site.urls)),
url(r'^csv$', 'dkobo.formbuilder.views.csv_to_xform', { "template": "sandbox-stub.html" }),
url(r'^sandbox$', 'dkobo.formbuilder.views.sandbox')
)
settings.py:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
मैंने बाकी कोड अपलोड किया ... क्या आप एक उदाहरण दे सकते हैं? –
मैंने उत्तर – Nikita
उत्तर दिया, यह काम किया! धन्यवाद। –