turbogears 模板和请求上下文中的请求/用户对象

1 投票
1 回答
581 浏览
提问于 2025-04-15 17:02

我现在正在从Django转到Turbogears 2.1,但遇到了一些问题,在Turbogears的文档中找不到答案。如果有Turbogears的开发者看到这个,我想说Django的文档真的是比TG好太多了!

1) 我想知道如何在mako模板中访问请求(用户)对象,以检查用户是否已登录?比如说:

如果 (request.user.is_authenticated) '登出链接' 否则 '登录链接'

2) 还有一个相关的问题(因为在Django中,用户对象是通过上下文处理器暴露给模板的)。有没有办法向请求上下文中添加数据?比如,在我的Django应用中,如果用户已登录,我会通过在context_processors.py文件中的定义,添加一个缓存的通知字典,然后在设置文件中的TEMPLATE_CONTEXT_PROCESSORS元组中包含这个定义。

3) 这个问题可能值得单独提问,但我想顺便问一下,万一有人有快速的建议。我在使用Netbeans作为我的IDE,但它对mako文件没有代码高亮或工具。不过,尝试将模板重命名为.html扩展名会导致mako错误。有没有办法解决这个问题,还是我只能用纯文本和.mak扩展名?

非常感谢!

1 个回答

1

我从Turbogears 1.0转到了Django。可能不能回答所有问题,但我觉得一般来说,TG2会尽量保持和TG1相似。希望我能指出TG1是怎么工作的,这可能会有所帮助……

1) 在Turbogears 1.0中,你可以用tg.identity.anonymous来检查用户是否登录。快速看看文档,应该还是差不多的。

2) Turbogears把这类东西叫做stdvars,想了解更多可以查看TG 1的详细信息 http://docs.turbogears.org/1.0/stdvars

3) 对不起我不知道,但我猜你可以告诉Netbeans把.mak文件当作html文件来处理(这样它就会使用html的语法高亮)。

撰写回答