问题描述
|
我想使用jQueryUI对话框在Django项目中添加功能,当您单击链接(例如\“ delete \”链接)时,将弹出jQueryUI对话框,询问您是否真的要删除该项目。然后,如果单击删除按钮(在jQuery对话框中),则Django函数将执行删除工作。
那么,如何使Delete按钮(在jQuery对话框中找到)将发布的消息(带有相应的变量)发送到我在views.py中找到的Django函数,它将完成删除工作?
真实的例子将不胜感激!
解决方法
假设您的模板中包含以下内容:
<div id=\"dialog\" title=\"Confirm delete\">Are you sure?</div>
{% for object in object_list %}
# display whatever you like here
<a id=\"{{ object.id }}\" class=\"delete\" href=\"#\">Delete</a>
{% endfor %}
然后这样的事情(在您的$(document).ready
中)将起作用-注意在click
处理程序中按下删除按钮(使用对话框的option方法)时,如何设置对话框调用的回调函数:
$(\"#dialog\").dialog({
modal: true,autoOpen: false
});
$(\"a.delete\").click(function(e) {
e.preventDefault();
var id = $(this).attr(\'id\');
$(\"#dialog\").dialog(\'option\',\'buttons\',{
\"Delete\": function() {
$.post({
url: {% url myapp.views.delete %},data: {\'id\': id},success: function() {
# whatever you like,some fancy effect that removes the object
}
});
$(this).dialog(\"close\");
},\"Cancel\": function() {
$(this).dialog(\"close\");
}
});
$(\"#dialog\").dialog(\"open\");
return false;
});
, 您还应该考虑Apise。它很可爱,使用jQuery,易于使用,并且很小(3k)。
apprise(\'Hello now?\',{\'verify\':true});