我正在使用获取用户对象
user = User.objects.all() context = {'user':user}
将其传递到上下文,然后在模板中使用
{% for i in user %} <h1>{{i.first_name}}<h1> <h1>{{i.date_joined}}</h1> {% endfor %}
现在我正在获取服务器时间,但我想得到的时间根据当前用户的国家时间?这怎么可能?
rqdpfwrv1#
正确的方法是将每个用户的时区存储在User模型或其他易于访问的模型中,然后可以编写一个用户的模型方法,获取服务器时间并将其转换为用户的本地时间,然后在模板中调用该方法并根据需要设置其格式:
User
{% for user in users %} <h1>{{ user.date_joined_local|date:"d/m/Y H:i" }}</h1> {% endfor %}
u3r8eeie2#
我已经找到了一种方法来获取用户的本地时间,并在模板中呈现它,而无需修改User模型中的任何内容。Javascript:在登录页cookie中存储时区
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; document.cookie = "timeZone="+timeZone;
在www.example.com中views.py将其传递给会话以维护cookie服务器端(在模板视图或索引视图中)
request.session['timeZone'] = request.COOKIES.get('timeZone')
在模板views.py
context['timeZone'] = request.session['timeZone']
在模板. html中
{% load tz ‰} <h1>{user.date_joined|timezone:timeZone}</h1>
2条答案
按热度按时间rqdpfwrv1#
正确的方法是将每个用户的时区存储在
User
模型或其他易于访问的模型中,然后可以编写一个用户的模型方法,获取服务器时间并将其转换为用户的本地时间,然后在模板中调用该方法并根据需要设置其格式:u3r8eeie2#
我已经找到了一种方法来获取用户的本地时间,并在模板中呈现它,而无需修改User模型中的任何内容。
Javascript:在登录页cookie中存储时区
在www.example.com中views.py将其传递给会话以维护cookie服务器端(在模板视图或索引视图中)
在模板views.py
在模板. html中