У меня есть эта ошибка из серверной части кэша django после обновления до python3 .6 и django2.2 из python3 .5 и django 1.11 соответственно, где функция django '* validay_key
завершается неудачно с помощью TypeError
из моего копания я обнаружил, что сбой ключа был в байтах b'celery-task-meta-23d118e8-144c-4178-bf1e-beeb9b04cc7f'
.
Кто-нибудь сталкивался с этим? Не уверен, что это проблема с django или сельдереем, как мне решить эту проблему, чтобы все ключи были python3? Вот трассировка
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/views/decorators/cache.py", line 31, in _cache_controlled
response = viewfunc(request, *args, **kw)
File "/code/frontend/views.py", line 95, in _checklogin
return view_func(request, *args, **kwargs)
File "/code/frontend/views.py", line 203, in get_progress
data['status'] = task.status
File "/usr/local/lib/python3.6/site-packages/celery/result.py", line 471, in state
return self._get_task_meta()['status']
File "/usr/local/lib/python3.6/site-packages/celery/result.py", line 410, in _get_task_meta
return self._maybe_set_cache(self.backend.get_task_meta(self.id))
File "/usr/local/lib/python3.6/site-packages/celery/backends/base.py", line 359, in get_task_meta
meta = self._get_task_meta_for(task_id)
File "/usr/local/lib/python3.6/site-packages/celery/backends/base.py", line 671, in _get_task_meta_for
meta = self.get(self.get_key_for_task(task_id))
File "/usr/local/lib/python3.6/site-packages/django_celery_results/backends/cache.py", line 19, in get
return self.cache_backend.get(key)
File "/usr/local/lib/python3.6/site-packages/django/core/cache/backends/db.py", line 52, in get
return self.get_many([key], version).get(key, default)
File "/usr/local/lib/python3.6/site-packages/django/core/cache/backends/db.py", line 60, in get_many
self.validate_key(key)
File "/usr/local/lib/python3.6/site-packages/django/core/cache/backends/base.py", line 251, in validate_key
if ord(char) < 33 or ord(char) == 127:
TypeError: ord() expected string of length 1, but int found