Django的简易时区(>=1.11)基于MaxMind Geoip2。
django-easy-timezones-redux的Python项目详细描述
Django简易时区redux
Django的简易基于IP的时区(>;=1.11)基于MaxMind GeoIP,支持IPv6。
使用maxmind的geoip2数据库的新版本更新了^{
快速启动
安装django简易时区redux
pipinstalldjango-easy-timezones-redux
将“轻松时区”添加到已安装的应用程序设置中,如下所示:
INSTALLED_APPS=(...'easy_timezones',)
将EasyTimeZoneMiddleware添加到中间件中
MIDDLEWARE=(...'easy_timezones.middleware.EasyTimezoneMiddleware',)
在设置文件中添加到MaxMind GeoLite2 cities databases的路径:
GEOIP2_DATABASE='/path/to/your/geoip/database/GeoLite2-City.mmdb'
在模板中启用本地时间。
{%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()