में {% csrf_token%} का उपयोग कैसे करें मेरे उपयोगकर्ता पेज में, मेरे पास AJAX के साथ संपादन किया गया है। और जब मैं संपादन पर क्लिक करता हूं, तो यह ठीक काम करता है। लेकिन जब मैं फॉर्म जमा करता हूं, तो यह कुछ भी नहीं करता है।जावास्क्रिप्ट
CSRF verification failed. Request aborted.
तो, मैं कैसे {% csrf_token%} रखूँ मेरी जावास्क्रिप्ट में: जब मैं जाँच की, यह त्रुटि है? कृपया सलाह दें। धन्यवाद।
edit.js:
function bookmark_edit() {
var item = $(this).parent();
var url = item.find(".title").attr("href");
item.load("/save/?ajax&url=" + escape(url), null, function() {
$("#save-form").submit(bookmark_save);
});
return false;
}
$(document).ready(function() {
$("ul.bookmarks .edit").click(bookmark_edit);
});
function bookmark_save() {
var item = $(this).parent();
var data = {
url: item.find("#id_url").val(),
title: item.find("#id_title").val(),
tags: item.find("#id_tags").val()
};
$.post("/save/?ajax", data, function (result) {
if (result != "failure") {
item.before($("li", result).get(0));
item.remove();
$("ul.bookmarks .edit").click(bookmark_edit);
}
else {
alert("Failed to validate bookmark before saving.");
}
})
return false;
}
save_form.html:
<form id = "save-form" method="post" action="/save/">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Save" />
</form>
user_page.html:
{% extends "base.html" %}
{% block external %}
<script type = "text/javascript" src="{% static "assets/js/bookmark_edit.js" %}"></script>
{% endblock %}
{% block title %} {{username}} {% endblock %}
{% block head %} Bookmarks for {{username}} {% endblock %}
{% block content %}
{% include "bookmark_list.html" %}
{% endblock %}
view.py:
@login_required(login_url='/login/')
def bookmark_save_page(request):
ajax = request.GET.has_key('ajax')
if request.method == 'POST':
form = BookmarkSaveForm(request.POST)
if form.is_valid():
bookmark = _bookmark_save(request, form)
if ajax:
variables = RequestContext(request, {
'bookmarks':[bookmark],
'show_edit':True,
'show_tags':True
})
return render_to_response('bookmark_list.html', variables)
else:
return HttpResponseRedirect('/user/%s/' % request.user.username
)
else:
if ajax:
return HttpResponseRedirect('failure')
elif request.GET.has_key('url'):
url = request.GET['url']
title = ''
tags = ''
try:
link = Link.objects.get(url=url)
bookmark = Bookmark.objects.get(
link=link,
user = request.user
)
title = bookmark.title
tags = ' '.join(
tag.name for tag in bookmark.tag_set.all()
)
except ObjectDoesNotExist:
pass
form = BookmarkSaveForm({
'url':url,
'title':title,
'tags':tags
})
else:
form = BookmarkSaveForm()
variables = RequestContext(request, {
'form': form
})
if ajax:
return render_to_response(
'bookmark_save_form.html',
variables
)
else:
return render_to_response('bookmark_save.html',variables)
मैंने कोशिश की 'csrfmiddlewaretoken: '{{csrf_token}}'' लेकिन यह काफी मदद की नहीं किया। और क्या आप समझा सकते हैं कि संपूर्ण शब्दकोश को एक शब्दकोश के रूप में कैसे भेजना है? – Karl
'var data = $ ('form')। Serialize() 'पूरे फॉर्म को एक शब्दकोश के रूप में भेज देगा। – karthikr
धन्यवाद! यह एक काम किया! बीडीडब्ल्यू क्या आप मुझे अद्यतित django संस्करण और जावास्क्रिप्ट दोनों के लिए पढ़ने के लिए कोई अच्छी किताबें सुझा सकते हैं? – Karl