Удаление объектов с помощью фреймворка django или javascript / AJAX - PullRequest
3 голосов
/ 06 августа 2011

У меня есть страница, которая имеет простую форму. Когда я отправляю эту форму, я перенаправляюсь на ту же страницу с созданными новыми объектами. Я хотел бы добавить встроенные ссылки справа от каждого объекта, созданного для удаления и редактирования. Буду ли я делать это с Django или я буду использовать Javascript / AJAX для обработки этого? Я просто немного запутался в подходе, который я должен использовать. Есть предложения?

Вот как выглядит мой взгляд:

def events(request):
    the_user = User.objects.get(username=request.user)
    event_list = Event.objects.filter(user=the_user)
    if request.POST:
        form = EventForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = EventForm(initial={'user':the_user})
    return render_to_response("events/event_list.html", {
        "form": form,
        "event_list": event_list,
    }, context_instance=RequestContext(request))

1 Ответ

2 голосов
/ 06 августа 2011

Обычно вы пишете другую функцию просмотра, например, delete_event(request, event_id) и подключаете ее в urls.py.В представлении удаления вы должны использовать предоставленную функцию Model.delete() для удаления объекта из базы данных.

Выбор, использовать ли ajax или нет, в основном зависит от вкуса - вынужно будет отправить запрос через javascript к функции, аналогичной описанной выше, которая позаботится о логике.

Существуют некоторые дополнительные издержки (при использовании ajax) с точки зрения надлежащего обновления страницы.

Правильный HTTP-глагол для удалений будет DELETE, но так как это обычно не поддерживается внекоробки, вы будете использовать POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...