jquery - 在 Django 中使用 AJAX/jQuery 删除对象

标签 jquery ajax django

我有一个模板,用于显示数据库中的对象列表。

{% for item in items %}
<li>
    {{ item }} - Tags: 
    {% for tag in item.tags.all %}
        <a href="/{{ user }}/{{ tag }}/">{{ tag }}</a>
    {% endfor%}
<br>
{{ item.notes }}
<br>
{{ item.date_modified|humanize_time_diff }}
<a href="">delete</a>
</li>
{% endfor%}

如何允许用户删除这些对象之一,同时保留在同一页面上?

这是我的 View 函数:

def tag_page(request, username, tag=None):
if username == request.user.username:
    if tag and tag in request.user.userprofile.tag_set.all():
        tag = Tag.objects.get(title=tag)
        items = tag.item_set.all()
        return render_to_response("tag_page.html", { 'user': request.user , 
                                                      'tag': tag,
                                                    'items': items })
    else:
        items = request.user.userprofile.item_set.all()
        return render_to_response("tag_page.html", { 'user': request.user , 
                                                      'tag': tag,
                                                    'items': items })
else:
    raise Http404

最佳答案

这是一个简单但较长的故事。简而言之,您可以查看这篇文章:http://www.arnebrodowski.de/blog/484-Django-Ajax-comment-deletion.html其中包含一个执行 AJAX 查询的代码片段(用 YUI 编写,但它的 jQuery 对应部分非常相似: http://api.jquery.com/jQuery.ajax/ ),该查询又会删除评论。

评论删除 View 内置于django.contrib.comments.views中,您必须编写自己的 View 来删除标签。它应该大致如下所示:

    def delete_tag_view(request, tag):
        tag_to_delete = get_object_or_404(Tag, title=tag)
        tag_to_delete.delete()
        return HttpResponse('OK') # This should really return JSON and/or some relevant HTTP status code

当然,您需要将其挂接到您的 URLconf 中:

url(r'/tag/delete/(?P<tag>\w+)', 'tags.views.delete_tag_view', name='tag-delete')

关于jquery - 在 Django 中使用 AJAX/jQuery 删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4198510/

相关文章:

javascript - 从background.js操作popup.html的DOM

javascript - 如何在 jQuery 中使用 .not 选择器?

javascript - jquery .click() 在 Ajax 403 响应后不起作用

php - Ajax for incorporated in the same div

python - django 从 1.3 升级到 1.9 生成 TypeError : Item in `` from list'' not a string

javascript - 如何在单击提交按钮之前隐藏标签?

javascript - Controller 操作触发后将文件保存到本地磁盘,ASP.NET MVC

时间序列数据的 Django 模型

python - django 1.8 SESSION_EXPIRE_AT_BROWSER_CLOSE 不工作

javascript - 第二天不能使用 setDate