注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

郁夫的博客

我爱你们,只是你们不知道!

 
 
 

日志

 
 
 
 

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

2011-04-15 15:16:14|  分类: Django |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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


1. 添加 templatetags 目录。

需要注意的是:


目录名必须是:templatetags ,这样Django才能找到它。
目录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
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  评论这张
 
阅读(301)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017