Jos*_*osh 1 django ajax jquery
我有一个显示数据库中对象列表的模板。
{% 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%}
Run Code Online (Sandbox Code Playgroud)
如何允许用户删除这些对象之一,同时停留在同一页面上?
这是我的视图函数:
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
Run Code Online (Sandbox Code Playgroud)
这是一个简单但更长的故事。简而言之,您可以查看这篇文章:http : //www.arnebrodowski.de/blog/484-Django-Ajax-comment-deletion.html,其中包含一个片段(用 YUI 编写,但它的 jQuery 对应物将非常类似:http : //api.jquery.com/jQuery.ajax/ ) 执行 AJAX 查询,进而删除评论。
评论删除视图内置于 中django.contrib.comments.views,您必须编写自己的删除标签视图。它应该大致如下所示:
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
Run Code Online (Sandbox Code Playgroud)
当然,你需要把它挂到你的 URLconf 中:
url(r'/tag/delete/(?P<tag>\w+)', 'tags.views.delete_tag_view', name='tag-delete')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4436 次 |
| 最近记录: |