Google App Engine 中通过自定义Django的filter解决时区问题

之前的解决办法是在前台界面的js里进行时间的转换,这样做不是很好,还发现在IE中显示会有不正确的时候。因此,打算使用Django自定义filter的方式来做。其中有一些需要注意的事项,一不小心就可能弄错,导致页面出错。

1. 添加 templatetags 目录。

需要注意的是:

  1. 目录名必须是:templatetags ,这样Django才能找到它。
  2. 目录templatetags的位置。
    比如:我的App目录为ncblog(app.yaml所在目录),在ncblog目录下,还有一个目录叫nancy,这时,我在nancy目录下建立一个目录templatetags,同时放置一个空的__init__.py。目录结构如下:
    ncblog
            ---- nancy
                    ---- blog
                    ---- templatetags

2. settings.py中设置INSTALLED_APPS

为了能找到 templatetags,我们需要在settings.py中的NSTALLED_APPS添加一个路径,比如我添加:

INSTALLED_APPS = (
    
'django.contrib.auth',
    
'django.contrib.contenttypes',
    
'django.contrib.sites',
    
'nancy'#我添加的这个
)

 3. 开始编写我们的filter

在 templatetags目录下建立任意文件名的文件,如:filters.py,我们现在是要做一个时区的转换filter,因此代码如下:

from django import template
from datetime import timedelta
register 
= template.Library()
def timezone(value, offset):
    
return value + timedelta(hours=offset)
register.filter(timezone)

4. 在模板文件的开头加上{% load filters %},然后就可以这样使用了:

{{log.date|timezone:8|date:"Y-m-d H:i:s"}}

 

作者:CoderZhCoderZh的技术博客 - 博客园
微博:http://t.sina.com.cn/coderzh
出处:http://coderzh.cnblogs.com
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

posted @ 2008-12-13 20:42 CoderZh 阅读(875) 评论(1) 编辑 收藏

 回复 引用 查看   
#1楼 2009-10-30 16:10 会飞的蜗牛      
请问你用的是Python吗?我用的是java,我想问个问题就是关于上传文件的问题,不知道java支持还是不支持文件上传,就是那种用户点击上传,不是应用程序中上传的静态文件,因为我做了个上传文件的程序,但是提示“安全性方面的问题”所以我不敢肯定到底是不是支持
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1354381 F1hDHyAkbEY=