在数据库中插入的时间是默认的UTC,而不是基于时区的时间..我不明白为什么会发生这种情况,即使我在查询中特别指定了我想要插入的时间
在我的模型中我有
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
在我的设置中,我有
if employees.objects.get(emp_id=request.user.username).emp_loc == 'IND':
tzone=pytz.timezone('Asia/Calcutta')
elif employees.objects.get(emp_id=request.user.username).emp_loc == 'MLA':
tzone=pytz.timezone('Asia/Manila')
elif employees.objects.get(emp_id=request.user.username).emp_loc == 'MPLS':
tzone=pytz.timezone('CST6CDT')
在我的观点中,我根据员工国家/地区设置时区
new_leave = leave.objects.create(employee=employees.objects.get(emp_id = userid.emp_id), start_date=sdt, end_date=edt, ltype=ltyp, message=des,date_created=datetime.now(tzone))
new_leave.save()
然后我根据国家/地区创建休假和更新时区
{{1}}
先谢谢。
答案 0 :(得分:0)
您可以创建一个处理日期和时间转换的中间件, 进口pytz
from django.utils import timezone
from django.utils.deprecation import MiddlewareMixin
class TimezoneMiddleware(MiddlewareMixin):
def process_request(self, request):
tzname = request.session.get('django_timezone')
if tzname:
timezone.activate(pytz.timezone(tzname))
else:
timezone.deactivate()
然后您可以使用之前指出的条件轻松创建视图。 如果您按照凯文的建议阅读文档,那就最好。