弹出等待Django中的用户操作

时间:2010-07-02 22:01:36

标签: django jquery popup django-views

在我的项目中,我必须添加从用户列表中删除朋友的功能。单击“删除朋友”链接时,将加载以下视图(发送了friends.id):

def delete_friend(request, id):
    friend = get_object_or_404(Friend, id=id)
    friend.delete()   
    return HttpResponseRedirect(reverse('user_profile',))

现在我想添加一个弹出窗口(当用户点击删除链接时出现)询问用户是否确定要执行该操作。我应该从哪里开始,怎么做?我猜,使用jquery我应该在点击链接后创建一个弹出窗口。然后可能会发生一些Ajax魔法。但是如何处理呢?我有jQ的中级知识,但我之前从未使用过ajax,而且我没有找到任何有关django-ajax的有用教程。

更新:我确定这里有错误,但这就是我的想法:
- 点击'删除朋友'后,jq打开一个弹出窗口 - 如果在点击'确定'按钮被点击,我们运行一个脚本(我认为需要以某种方式将我的朋友的.id转移到此功能):

$(".friend_remove_ok").click(
    function(){ 
        // let's say id is my friend.id
        $.ajax({
            type: "GET",
        url: "/user/delete_friend/"+id+"/",
        dataType: "json",
        success: function(data){
            $("#friend_"+id).fadeOut(300, function() { $("#friend_"+_id).remove() });                       
                }
             });
        }
    );

- 然后它运行我们的delete_friend视图

这有什么用,或者我的想法完全错了?

1 个答案:

答案 0 :(得分:2)

主要思想是点击删除按钮会触发打开确认对话框的javascript方法。 一旦用户确认您可以做几件事:

  • 您可以将浏览器重定向到 删除网址(您的观点)
  • 您可以使用XMLHttpRequest(jQuery中的$ .ajax)来调用删除网址然后刷新浏览器
  • 您可以使用XMLHttpRequest调用删除网址然后使用DOM API从列表中删除元素

还建议不应在GET请求上执行修改模型的操作,这意味着您应该使用POST或DELETE调用删除URL