मैं Django में एक मॉडल के X-Editable इनलाइन संपादन प्राप्त करने की कोशिश कर रहा हूं। मैं बस एक मॉडल उदाहरण के गुणों को बदलने की कोशिश कर रहा हूं (इस मामले में, डेटासेट ऑब्जेक्ट का नाम)।डीजेंगो में एक्स-संपादन योग्य इनलाइन संपादन - सीएसआरएफ सुरक्षा कैसे प्राप्त करें?
मुझे यकीन है कि नहीं है ताकि वह ajax अनुरोध से जानकारी दर्ज करता है कि कैसे दृश्य लिखने के लिए कर रहा हूँ:
POST /datasets/9/update_name/
{
pk: 3 //primary key (record id)
value: 'The Updated Name' //new value
}
तो डेटासेट वस्तु के लिए नए नाम को बचाने के।
urls.py
# ex: /datasets/3/update_name
url(r'^(?P<pk>\d+)/update_name/$', update_name ,
name='update_name'),
detail.html
<h1 class="page-title center">
<a href="#" id="datasetName">{{ dataset.name }}</a>
</h1>
<script>
$('#datasetName').editable({
type: 'text',
pk: {{ dataset.pk }},
url: '{% url 'datasets:update_name' dataset.pk %}',
title: 'Edit dataset name'
params: { csrf: '{% csrf_token %}'} # // This isn't working
});
</script>
views.py
def update_name(request, dataset_id):
# ... Update Dataset object ...
json = simplejson.dumps(request.POST)
return HttpResponse(json, mimetype='application/json')
संपादित करें:
मेरा मानना है कि समर्थक ब्लेम यह है कि कोई सीएसआरएफ सुरक्षा नहीं है। मैं इसे एक्स-संपादन योग्य रूप में कैसे जोड़ सकता हूं?
** संपादित करें 2:
मैं भी इस की कोशिश की है डॉक्स के अनुसार,:
<h1 class="page-title center">
<a href="#" id="datasetName">{{ dataset.name }}</a>
</h1>
<script>
// using jQuery
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
// Only send the token to relative URLs i.e. locally.
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
}
}
});
$('#datasetName').editable({
type: 'text',
pk: {{ dataset.pk }},
url: '{% url 'datasets:update_name' dataset.pk %}',
title: 'Edit dataset name',
});
</script>
आप जो कर रहे हैं उसे साझा करने के लिए धन्यवाद, लेकिन सवाल क्या है? –
क्षमा करें। संपादित। मुझे यकीन नहीं है कि अनुरोध से जानकारी को कैप्चर और सहेजने के लिए दृश्य कैसे लिखें –
क्या व्यू कोड कहा जा रहा है? अनुरोध क्या है। पोस्ट की तरह दिखता है? क्या 'request.is_ajax() सत्य है? क्या आपको सामने के अंत में सफलता की प्रतिक्रिया मिलती है? 'Form.is_valid()' का नतीजा क्या है? – dokkaebi