【发布时间】:2014-10-02 02:51:30
【问题描述】:
我有一个带有 Post 模型的项目,即基本帖子。我想在每个帖子页面上创建一个链接,以便能够删除该帖子(具有适当的安全性)。
关于堆栈溢出有几个问题,但我似乎找不到一个完整、可行的答案(我使用的是 Django 1.7),在我实现它时不会引发错误。
我已经能够实现一个可以正常工作的删除功能,但需要添加一个带有 CSRF 令牌的 POST 表单以进行验证,并检查删除它的用户是否是创建它的用户。我似乎无法弄清楚如何添加这两个。
到目前为止,在我看来.py:
def delete(request, id):
post = Post.objects.filter(pk=id).delete()
return HttpResponseRedirect(reverse('posts.views.all_posts'))
在 urls.py 中:
url(r'^delete/(?P<id>\d+)/$','posts.views.delete'),
在html中:
<a href="/delete/{{ post.id }}">Delete</a>
这一切都有效,但没有安全性 - 所以感谢有关如何添加表单和检查的指导。
另外,我看到了一个使用 DeleteView 的答案,但也无法使用它。
【问题讨论】:
-
我只是想澄清一下用户是否需要登录才能查看所有帖子?
标签: django