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

2013-07-24 23:57:13 +08:00
 halicando
user有 is_authenticated 这个 Field么?
4862 次点击
所在节点    Python
11 条回复
linnchord
2013-07-25 00:05:19 +08:00
好抽象的问题……
dorentus
2013-07-25 00:06:55 +08:00
就是为了少打两个字符啊

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

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

如果用 jinja2的话,那就是这样了 {{ v[0] }} {{ v['key'] }} {{ v.username }}, {{ v.is_authenticated() }}
DH
2013-07-25 00:18:09 +08:00
django模板一大设计思想就是尽可能让你少在模板里面写逻辑,所以模板里面的都做了高度简化。
lidashuang
2013-07-25 00:25:02 +08:00
ruby 都用没括号的写法
monkeylyf
2013-07-25 02:19:53 +08:00
sudayly
2013-07-25 20:27:18 +08:00
能少些个括号不是好事麽
yangg
2013-07-26 17:20:15 +08:00
ruby就是这么做的,写解析器的人不喜欢打括号
imcj
2013-07-26 23:56:45 +08:00
因为Django的Tag是不能带括号的,设定而已。
no13bus
2013-07-27 01:47:54 +08:00
flask的话,说是指定了相关方法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/76878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX