Django的简易时区(>=1.7)基于MaxMind Geoip。
django-easy-timezones的Python项目详细描述
时区。讨厌。
Django简易时区
基于maxmind geoip的django(>;=1.7)简易基于IP的时区,具有 IPv6支持。
快速启动
安装Django简易时区
pipinstalldjango-easy-timezones
将“轻松时区”添加到已安装的应用程序设置中,如下所示:
INSTALLED_APPS=(...'easy_timezones',)
将EasyTimeZoneMiddleware添加到中间件类中
MIDDLEWARE_CLASSES=(...'easy_timezones.middleware.EasyTimezoneMiddleware',)
(可选)向MaxMind GeoIP cities databases(direct link)添加路径 因为我很好)在你的设置文件中:
GEOIP_DATABASE='/path/to/your/geoip/database/GeoLiteCity.dat'GEOIPV6_DATABASE='/path/to/your/geoip/database/GeoLiteCityv6.dat'
在模板中启用本地时间。
{%loadtz%}TheUTCtimeis{{object.date}}{%localtimeon%}Thelocaltimeis{{object.date}}{%endlocaltime%}
把一个扭起来,因为你完了,老兄!
信号
您还可以使用信号根据时区执行操作 检测。
连接到时区检测事件,例如,将其保存到 请求的用户在某个比会话更永久的地方执行某些操作 像这样:
fromeasy_timezones.signalsimportdetected_timezone@receiver(detected_timezone,sender=MyUserModel)defprocess_timezone(sender,instance,timezone,**kwargs):ifinstance.timezone!=timezone:instance.timezone=timezoneinstance.save()