django 用户删除自已的发布信息时.遇到这样的错误?

发布于 2021-11-21 08:47:09 字数 1294 浏览 802 评论 6

在代码里这样定义的删除url

url(r'^info/?id=(?P<pk>d+)/del/$', 'gqinfo.views.info_del', name='info_del'), 

在views.py里这样定义:

@login_required
def info_del(request):
    gqinfo_del=Gqinfo.objects.get(id=pk)
    if gqinfo_del.user != request.user:
        return HttpResponseForbidden()
    gqinfo_del.delete()
    return HttpResponseRedirect('/')

 

这样删除不成功.


下面这个办法也不行:

@login_required
def info_del(request):
    if request.GET.has_key('gqinfo_id'):
        gqinfo_id = request.GET['gqinfo_id']
        try:
            gqinfo_del=Gqinfo.objects.get(id=gqinfo_id)
            if gqinfo_del.user != request.user:
                return HttpResponseForbidden()
            else:
                gqinfo_der.delete()
        except:
            return Http404
        return HttpResponseRedirect('/')
    else:
        return Http404

这样也不删不了.

总是取不到url里面的pk

另外问一下.要用户删除信息还要先删除该信息相关的评论吗?

如果不写代码.用户只删信息.那评论还会在数据库里还是跟着信息自动被删除?

或者有什么更好的删除用户自已发布信息的方法或代码不?

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

无边思念无边月 2021-11-24 09:23:35

@login_required

这个就保证只有登陆用户才可以删啊.

不过现在解决了

在模板里用{{info.id}} 取和ID.而不是用(?P<pk>)d+

 

这个我早应想到...一时糊涂啊

多谢了

哑剧 2021-11-24 05:56:29

def info_del(request): 改成

def info_del(request, pk):

无边思念无边月 2021-11-24 05:54:12

def info_del(request): 改成

def info_del(request, pk):

回忆凄美了谁 2021-11-23 09:18:19

def info_del(request): 改成

def info_del(request, pk):

绝情姑娘 2021-11-23 03:09:07

def info_del(request): 改成

def info_del(request, pk):

卸妝后依然美 2021-11-22 11:21:41

def info_del(request): 改成

def info_del(request, pk):

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文