0
用戶註銷後,Django似乎記得上次激活的時區。註銷Django當前時區註銷後
- 用戶訊息形成 - 對形式的日期時間解釋爲UTC
- 用戶登錄與澳大利亞/悉尼的優選時區
- 用戶訊息形成 - 上解釋爲澳大利亞/悉尼形式日期時間
- 用戶註銷
- 用戶帖子窗體上的datetime仍然被解釋爲澳大利亞悉尼,儘管TIME_ZONE設置爲UTC
- 重新啓動服務器,然後用戶(仍未登錄)發佈表單 - datetime on form inte rpreted爲UTC
我
TIME_ZONE = 'UTC'
USE_TZ = True
和中間件:
class TimezoneMiddleware(object):
def process_request(self, request):
tz = request.session.get('django_timezone', '')
if tz:
timezone.activate(tz)
elif request.user.is_authenticated():
preferredTimezone = request.user.get_profile().preferredTimezone
timezone.activate(preferredTimezone)
我認爲Django的可能記住最後一次先前激活的時區,如爲activate
此評論指出功能來源:
def activate(timezone):
"""
Sets the time zone for the current thread.
The ``timezone`` argument must be an instance of a tzinfo subclass or a
time zone name. If it is a time zone name, pytz is required.
"""
if isinstance(timezone, tzinfo):
_active.value = timezone
有人可以證實這一點嗎?解決這個問題的最好方法是在中間件中有一個叫deactivate
的else語句嗎?