首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

django 用户删除自已发布的信息的时候.如何取得自已的id? 代码里总得取不到

2013-09-26 
django 用户删除自已发布的信息的时候.怎么取得自已的id? 代码里总得取不到在代码里这样定义的删除url url

django 用户删除自已发布的信息的时候.怎么取得自已的id? 代码里总得取不到
在代码里这样定义的删除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 

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

如果不写代码.用户只删信息.那评论还会在数据库里还是跟着信息自动被删除?
[解决办法]
要多看文档,文档里专门有一节“Named Groups”!pk会作为参数传给info_del,info_del的定义应该是:


@login_required
def info_del(request, pk):
   # can use pk now
   ...




评论是否会自动删除,取决于你所用的数据库是否支持及table是如果定义的。SQL支持cascading delete(http://baike.baidu.com/view/690105.htm)。NOSQL大概不支持。

热点排行