Всплывающее окно ожидания действий пользователя в Django - PullRequest
0 голосов
/ 03 июля 2010

В моем проекте мне нужно добавить функциональность для удаления друзей из списка пользователей.При нажатии на ссылку «Удалить друга» загружается следующее представление (с отправленным friends.id):

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

Теперь я хотел бы добавить всплывающее окно (которое появляется, когда пользователь нажимает на ссылку удаления)) спросить, уверен ли пользователь выполнить операцию.С чего мне начать и как?Я предполагаю, что с помощью jquery я должен создать всплывающее окно после нажатия на ссылку.Тогда, вероятно, должна произойти какая-то магия Аякса.Но как справиться с этим?У меня есть промежуточные знания jQ, но я никогда раньше не использовал ajax, и я не нашел никаких полезных руководств, касающихся django-ajax.

ОБНОВЛЕНИЕ: Я уверен, что здесь есть ошибки, но это то, что ядумал о:
- после нажатия «Удалить друга» jq открывает всплывающее окно
- если на кнопке «ОК» нажать, мы запускаем скрипт (думаю, нужно как-то перенести файл моего друга в эту функцию):

$(".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 Ответ

2 голосов
/ 03 июля 2010

Основная идея состоит в том, что нажатие на кнопку удаления вызывает метод javascript, открывающий диалоговое окно подтверждения. Как только пользователь подтвердил, что вы можете сделать несколько вещей:

  • вы можете перенаправить браузер на удалить URL (ваш взгляд)
  • вы можете использовать XMLHttpRequest ($ .ajax в jQuery) для вызова URL-адреса удаления, а затем обновить браузер
  • вы можете использовать XMLHttpRequest для вызова URL-адреса удаления, а затем использовать DOM API для удаления элемента из списка

Также рекомендуется, чтобы действия, модифицирующие модель, не выполнялись по запросу GET, что означает, что вы должны вызывать свой URL для удаления, используя POST или DELETE

...