【问题标题】:Deleting objects with django framework or javascript/AJAX使用 django 框架或 javascript/AJAX 删除对象
【发布时间】:2011-08-05 20:43:06
【问题描述】:

我有一个具有简单表单的页面。当我提交此表单时,我被重定向到创建新对象的同一页面。我想在每个创建删除和编辑的对象的右侧添加内联链接。我会用 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))

【问题讨论】:

    标签: javascript ajax django


    【解决方案1】:

    通常,您会编写另一个视图函数,例如delete_event(request, event_id) 并将其连接到 urls.py。在删除视图中,您将使用提供的Model.delete() 函数从数据库中删除对象。

    是否使用 ajax 的选择主要取决于个人喜好 - 您需要通过 javascript 向我上面描述的类似函数发出请求,该函数会处理逻辑。

    在适当更新页面方面存在一些额外开销(使用 ajax 时)。

    删除的正确 http 动词是 DELETE,但由于通常不支持开箱即用,因此您将使用 POST

    【讨论】:

    • 这样的? (r^events/delete/(?P\d+)/$' 'delete_event')
    • 但是这个问题是我不想被重定向到事件/删除/。我想继续参加活动/。事情是,去事件/的请求已经绑定到我的事件视图。
    • 我可能不完全理解您的担忧;但您始终可以在删除后重定向 - 例如到您来自的页面。假设你在events,你点击删除链接——这会将你带到events/1231/delete(不是很安静,我知道;)——然后你会立即被重定向回events,这次在您的列表中少一项 - 这还不够吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2017-04-13
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多