Ошибка сжатия Django: Неверный ввод типа: 'CacheKey' - PullRequest
0 голосов
/ 16 ноября 2018

Мы неожиданно начали сталкиваться с этой проблемой при сжатии статических файлов django на производственных серверах. Ubuntu 16.04, Python 3.x, Django 1.11. Я использую ansible-playbook для развертывания.

Ошибка выглядит следующим образом:

CommandError: An error occurred during rendering /chalktalk/app/chalktalk-react-40/chalktalk-react-40/chalktalk/apps/exams/templates/exams/section-edit.html: Invalid input of type: 'CacheKey'. Convert to a byte, string or number first.

Кажется, проблема не в одном из статических файлов, а общая проблема. Каждый раз, когда мы запускаем его, мы получаем другой файл.

Я искал какие-либо подсказки в Google, и ничего не появляется с той же ошибкой.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Это, похоже, проблема с базовой библиотекой redis.Попробуйте прикрепить вашу redis версию к 2.10.6 с 17 августа 2017 года. Новая версия 3, выпущенная 15 ноября, содержит это несовместимое изменение.

pip install redis==2.10.6
# and/or
echo redis==2.10.6 >> requirements.txt

Я не уверен, какой пакет вы используетекоторый может потребовать повторного использования в качестве зависимости, или если вы используете его самостоятельно.В любом случае это один и тот же процесс.

У меня только что появилась эта проблема, но через пакет django-redis, который требует лежащую в основе redis lib.Однако этот пакет на самом деле не ограничивает максимальную версию, поэтому он с радостью обновляет свою версию после значительного увеличения версии, чего вы не можете сделать, поскольку ожидаете, что API изменится!

Точный код, мастер в django-redis :

install_requires = [
    "redis>=2.10.0",
]

Но на самом деле это должен быть

install_requires = [
    "redis>=2.10.0, <3",
]

Редактировать: Iнашел отчет об ошибке в django-redis (# 342) об этом только сейчас, но этот ТАК вопрос возник в Google впервые, когда я его изучал.

0 голосов
/ 16 ноября 2018

Попробуйте установить Redis-Py ниже версии 3

...