Python论坛  - 讨论区

标题:[python-chinese] [django]文档sessions里的一个例子问

2006年04月28日 星期五 15:10

风向标 vaneoooo at gmail.com
Fri Apr 28 15:10:28 HKT 2006

这段代码只允许用户发表一次评论 但是我有一些问题:


def post_comment(request, new_comment):
    if request.session.get('has_commented', False):
        return HttpResponse("You've already commented.")
    c = comments.Comment(comment=new_comment)
    c.save()
    request.session['has_commented'] = True
    return HttpResponse('Thanks for your comment!')

它判断if request.session.get('has_commented', False):如果为False,则说已经发表过了
但是后面在正常发表后,又给has_commented赋True 那不是可以一直发表嘛?  是文档代码写错了还是我理解错了呢? 谢谢
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060428/6bddd40b/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月28日 星期五 21:29

wang bin wangbin1979 at gmail.com
Fri Apr 28 21:29:07 HKT 2006

On 4/28/06, 风向标 <vaneoooo at gmail.com> wrote:
>
>
>
>
> 这段代码只允许用户发表一次评论 但是我有一些问题:
>
>
> def post_comment(request, new_comment):
>     if request.session.get('has_commented', False):
>         return HttpResponse("You've already commented.")
>     c = comments.Comment(comment=new_comment)
>     c.save()
>     request.session['has_commented'] = True
>     return HttpResponse('Thanks for your comment!')
>
> 它判断if request.session.get('has_commented', False):如果为False,则说已经发表过了
> 但是后面在正常发表后,又给has_commented赋True 那不是可以一直发表嘛?  是文档代码写错了还是我理解错了呢? 谢谢

理解错了,get方法取'has_commented',如果没有值,则默认是False,这里False是默认值。

--
想飞之心,永远不死!
Registered Linux User 404987 [http://counter.li.org]

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号