【问题标题】:Popup waiting for user action in Django在 Django 中等待用户操作的弹出窗口
【发布时间】:2010-07-02 22:01:36
【问题描述】:

在我的项目中,我必须添加从用户列表中删除朋友的功能。单击“删除朋友”链接时,将加载以下视图(发送 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 视图

这有什么好处,还是我的想法完全错了?

【问题讨论】:

    标签: django jquery popup django-views


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2020-02-20
      • 1970-01-01
      • 2011-05-21
      • 2012-11-08
      相关资源
      最近更新 更多