django 用户删除自已的发布信息时.遇到这样的错误?
在代码里这样定义的删除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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
@login_required
这个就保证只有登陆用户才可以删啊.
不过现在解决了
在模板里用{{info.id}} 取和ID.而不是用(?P<pk>)d+
这个我早应想到...一时糊涂啊
多谢了
def info_del(request): 改成
def info_del(request, pk):
def info_del(request): 改成
def info_del(request, pk):
def info_del(request): 改成
def info_del(request, pk):
def info_del(request): 改成
def info_del(request, pk):
def info_del(request): 改成
def info_del(request, pk):