我以UTC格式保存日期。我不想将该日期更改为自动用户时区。
我的设置
USE_TZ = True
我的模板
{% for sale in sales %}
date : {{sale.date}}
{% endfor %}
我试过django-tz-detect
https://github.com/adamcharnock/django-tz-detect
但我无法正确实施。
请提出解决此问题的好方法。
答案 0 :(得分:1)
我从here
获得了解决方案我创建了一个视图功能
@login_required
@ajax_required
@require_GET
def set_user_timezone(request):
timezone = request.GET.get('timezone')
request.session["set_user_timezone"] = timezone
response_data = {}
response_data['status'] = 'true'
response_data['message'] = 'user timezone set successfully.'
return HttpResponse(json.dumps(response_data), mimetype='application/javascript')
上下文
if "set_user_timezone" in request.session:
user_session_ok = True
user_time_zone = request.session['set_user_timezone']
else:
user_session_ok = False
user_time_zone = "Asia/Kolkata"
在我的基本模板中
{% if not user_session_ok %}
<script type="text/javascript" src="{% static 'js/jstz.js' %}"></script>
<script>
$(document).ready(function(){
var timezone = jstz.determine();
var timezone_name = timezone.name();
$.ajax({
url : '/set-user-timezone/',
action : "GET",
data : {
timezone : timezone_name
},
success : function(data){
},
error : function(data){
}
})
});
</script>
{% endif %}
我的销售模板
{% for sale in sales %}
{% load tz %}
date : {{ sale.sale_date|timezone:user_time_zone }}
{% endfor %}
我不知道这是正确的方法。但这个解决方案适合我。