推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
halicando
V2EX  ›  Python

为什么在模板里面要写成 {% if user.is_authenticated %} ,而不是 {% if user.is_authenticated() %} ?

  •  
  •   halicando · Jul 24, 2013 · 6476 views
    This topic created in 4850 days ago, the information mentioned may be changed or developed.
    user有 is_authenticated 这个 Field么?
    11 replies  •  1970-01-01 08:00:00 +08:00
    linnchord
    linnchord
    Jul 25, 2013
    1
    好抽象的问题……
    dorentus
    dorentus
    Jul 25, 2013
    2
    就是为了少打两个字符啊

    另外也稍微好看些,个人观点
    amyangfei
    amyangfei
    Jul 25, 2013
    3
    django么,is_authenticated是 models.User的一个方法,在模板里不都这么写么
    DH
    DH
    Jul 25, 2013
    4
    django的模板? django的模板里面,属性,dict的key,函数,还有list里面的元素,都是直接通过一个点引用的,然后template会按照 key,属性,函数,list元素这个书序依次查找。

    不要问哥为什么,这个模板语言就是这么设定的。

    如果用 jinja2的话,那就是这样了 {{ v[0] }} {{ v['key'] }} {{ v.username }}, {{ v.is_authenticated() }}
    DH
    DH
    Jul 25, 2013
    5
    django模板一大设计思想就是尽可能让你少在模板里面写逻辑,所以模板里面的都做了高度简化。
    G2bN4dbX9J3ncp0r
    G2bN4dbX9J3ncp0r
    Jul 25, 2013
    6
    ruby 都用没括号的写法
    sudayly
    sudayly
    Jul 25, 2013
    8
    能少些个括号不是好事麽
    yangg
    yangg
    Jul 26, 2013
    9
    ruby就是这么做的,写解析器的人不喜欢打括号
    imcj
    imcj
    Jul 26, 2013
    10
    因为Django的Tag是不能带括号的,设定而已。
    no13bus
    no13bus
    Jul 27, 2013
    11
    flask的话,说是指定了相关方法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3421 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 05:15 · PVG 13:15 · LAX 21:15 · JFK 00:15
    ♥ Do have faith in what you're doing.