USE_TZ = True时,登录http://127.0.0.1:8005/admin/django_celery_results/taskresult/会报错误
ValueError at /admin/django_celery_results/taskresult/
Database returned an invalid datetime value. Are time zone definitions for your database installed?
Request Method: GET
Request URL: http://127.0.0.1:8005/admin/django_celery_results/taskresult/
Django Version: 3.1.4
Exception Type: ValueError
Exception Value:
Database returned an invalid datetime value. Are time zone definitions for your database installed?
Exception Location: D:\virtualenv\Python38Django3\lib\site-packages\django\db\models\functions\datetime.py, line 242, in convert_value
Python Executable: D:\virtualenv\Python38Django3\Scripts\python.exe
Python Version: 3.8.5
Python Path:
['D:\\MyDjangoProject\\myinfoplatform',
'D:\\MyDjangoProject\\myinfoplatform',
'C:\\Program Files (x86)\\Keysight\\Command Expert',
'C:\\Program Files (x86)\\Keysight\\Command Expert\\Addons\\python',
'd:\\python\\python38\\python38.zip',
'd:\\python\\python38\\DLLs',
'd:\\python\\python38\\lib',
'd:\\python\\python38',
'D:\\virtualenv\\Python38Django3',
'D:\\virtualenv\\Python38Django3\\lib\\site-packages']
Server time: Fri, 29 Aug 2025 11:21:17 +0800
需设置USE_TZ = False才不会报错
但如果设置USE_TZ = False,则celery -A myinfoplatform beat -l info -S django会报如下错误
LocalTime -> 2025-08-29 11:20:43
Configuration ->
. broker -> redis://127.0.0.1:6379/0
. loader -> celery.loaders.app.AppLoader
. scheduler -> django_celery_beat.schedulers.DatabaseScheduler
. logfile -> [stderr]@%INFO
. maxinterval -> 5.00 seconds (5s)
[2025-08-29 11:20:43,415: INFO/MainProcess] beat: Starting...
[2025-08-29 11:20:43,460: CRITICAL/MainProcess] beat raised exception <class 'TypeError'>: TypeError("can't compare offset-naive and offset-aware datetimes")
Traceback (most recent call last):
File "D:\virtualenv\Python38Django3\lib\site-packages\celery\apps\beat.py", line 105, in start_scheduler
service.start()
File "D:\virtualenv\Python38Django3\lib\site-packages\celery\beat.py", line 645, in start
interval = self.scheduler.tick()
File "D:\virtualenv\Python38Django3\lib\site-packages\celery\beat.py", line 343, in tick
self.populate_heap()
File "D:\virtualenv\Python38Django3\lib\site-packages\celery\beat.py", line 317, in populate_heap
is_due, next_call_delay = entry.is_due()
File "D:\virtualenv\Python38Django3\lib\site-packages\django_celery_beat\schedulers.py", line 113, in is_due
if now < self.model.start_time:
TypeError: can't compare offset-naive and offset-aware datetimes
[2025-08-29 11:20:43,464: WARNING/MainProcess] Traceback (most recent call last):
[2025-08-29 11:20:43,464: WARNING/MainProcess] File "d:\python\python38\lib\runpy.py", line 194, in _run_module_as_main
[2025-08-29 11:20:43,466: WARNING/MainProcess]
[2025-08-29 11:20:43,466: WARNING/MainProcess] return _run_code(code, main_globals, None,
[2025-08-29 11:20:43,466: WARNING/MainProcess] File "d:\python\python38\lib\runpy.py", line 87, in _run_code
[2025-08-29 11:20:43,467: WARNING/MainProcess]
[2025-08-29 11:20:43,467: WARNING/MainProcess] exec(code, run_globals)
[2025-08-29 11:20:43,467: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\Scripts\celery.exe\__main__.py", line 7, in <module>
[2025-08-29 11:20:43,468: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\__main__.py", line 15, in main
[2025-08-29 11:20:43,468: WARNING/MainProcess]
[2025-08-29 11:20:43,468: WARNING/MainProcess] sys.exit(_main())
[2025-08-29 11:20:43,468: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\bin\celery.py", line 213, in main
[2025-08-29 11:20:43,469: WARNING/MainProcess]
[2025-08-29 11:20:43,470: WARNING/MainProcess] return celery(auto_envvar_prefix="CELERY")
[2025-08-29 11:20:43,470: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\click\core.py", line 1161, in __call__
[2025-08-29 11:20:43,474: WARNING/MainProcess]
[2025-08-29 11:20:43,475: WARNING/MainProcess] return self.main(*args, **kwargs)
[2025-08-29 11:20:43,475: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\click\core.py", line 1082, in main
[2025-08-29 11:20:43,475: WARNING/MainProcess]
[2025-08-29 11:20:43,475: WARNING/MainProcess] rv = self.invoke(ctx)
[2025-08-29 11:20:43,475: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\click\core.py", line 1697, in invoke
[2025-08-29 11:20:43,476: WARNING/MainProcess]
[2025-08-29 11:20:43,476: WARNING/MainProcess] return _process_result(sub_ctx.command.invoke(sub_ctx))
[2025-08-29 11:20:43,476: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\click\core.py", line 1443, in invoke
[2025-08-29 11:20:43,477: WARNING/MainProcess]
[2025-08-29 11:20:43,477: WARNING/MainProcess] return ctx.invoke(self.callback, **ctx.params)
[2025-08-29 11:20:43,477: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\click\core.py", line 788, in invoke
[2025-08-29 11:20:43,478: WARNING/MainProcess]
[2025-08-29 11:20:43,478: WARNING/MainProcess] return __callback(*args, **kwargs)
[2025-08-29 11:20:43,478: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\click\decorators.py", line 33, in new_func
[2025-08-29 11:20:43,480: WARNING/MainProcess]
[2025-08-29 11:20:43,480: WARNING/MainProcess] return f(get_current_context(), *args, **kwargs)
[2025-08-29 11:20:43,480: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\bin\base.py", line 134, in caller
[2025-08-29 11:20:43,481: WARNING/MainProcess]
[2025-08-29 11:20:43,481: WARNING/MainProcess] return f(ctx, *args, **kwargs)
[2025-08-29 11:20:43,482: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\bin\beat.py", line 72, in beat
[2025-08-29 11:20:43,482: WARNING/MainProcess]
[2025-08-29 11:20:43,482: WARNING/MainProcess] return beat().run()
[2025-08-29 11:20:43,482: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\apps\beat.py", line 77, in run
[2025-08-29 11:20:43,483: WARNING/MainProcess]
[2025-08-29 11:20:43,483: WARNING/MainProcess] self.start_scheduler()
[2025-08-29 11:20:43,483: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\apps\beat.py", line 105, in start_scheduler
[2025-08-29 11:20:43,483: WARNING/MainProcess]
[2025-08-29 11:20:43,483: WARNING/MainProcess] service.start()
[2025-08-29 11:20:43,483: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\beat.py", line 645, in start
[2025-08-29 11:20:43,484: WARNING/MainProcess]
[2025-08-29 11:20:43,484: WARNING/MainProcess] interval = self.scheduler.tick()
[2025-08-29 11:20:43,484: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\beat.py", line 343, in tick
[2025-08-29 11:20:43,484: WARNING/MainProcess]
[2025-08-29 11:20:43,484: WARNING/MainProcess] self.populate_heap()
[2025-08-29 11:20:43,485: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\celery\beat.py", line 317, in populate_heap
[2025-08-29 11:20:43,485: WARNING/MainProcess]
[2025-08-29 11:20:43,485: WARNING/MainProcess] is_due, next_call_delay = entry.is_due()
[2025-08-29 11:20:43,485: WARNING/MainProcess] File "D:\virtualenv\Python38Django3\lib\site-packages\django_celery_beat\schedulers.py", line 113, in is_due
[2025-08-29 11:20:43,485: WARNING/MainProcess]
[2025-08-29 11:20:43,485: WARNING/MainProcess] if now < self.model.start_time:
[2025-08-29 11:20:43,486: WARNING/MainProcess] TypeError
[2025-08-29 11:20:43,486: WARNING/MainProcess] :
[2025-08-29 11:20:43,486: WARNING/MainProcess] can't compare offset-naive and offset-aware datetimes