Подтвердить что ты не робот

Стол thumbnail_kvstore не существует

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

django.db.utils.ProgrammingError: (1146, "Таблица" ia_website.thumbnail_kvstore "не существует" )

  • Установленный sorl_thumbnail-12.3
  • Я использую MariaDB 10.1.11
  • У меня нет миграции, которые не выполняются
  • Я могу увидеть изображение, если я не использую тег 'thumbnail'

Вот что я сделал

  • В settings.py:

    INSTALLED_APPS = [
        ...
        'sorl.thumbnail',
    ]
    
    THUMBNAIL_DEBUG = TRUE
    
  • В models.py

    import sorl
    ...
        image = sorl.thumbnail.ImageField(upload_to='thumbnails', null=True)
    
  • В моем шаблоне

    {% thumbnail content.image "237x110" as im %}
        <img src="{{ im.url }}">
    {% endthumbnail %}
    
4b9b3361

Ответ 1

Итак, после некоторых исследований, похоже, что версия 12.3 sorl-thumbnail на PyPI и Github разные!

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

В Github существует файл миграции для версии 12.3.

У вас есть три варианта:

  • Создайте таблицу с помощью ./manage.py syncdb (только если вы используете Django 1.8 или ниже)
  • Установить непосредственно из Github для версии 12.3
  • Используйте версию 12.4a1 для Sorl-thumbnail, которая включает в себя миграции

Вы можете установить из Github прямо следующим образом:

pip install git+git://github.com/mariocesar/[email protected]

версия сорт-thumbnail 12.3 поддерживает до версии 1.8 Django, где команда syncdb все еще существует. Если вы используете Django 1.8 или ниже, вы можете создать отсутствующую таблицу, запустив

python manage.py syncdb

Ответ 2

Если просто

manage.py makemigrations 

не создает никаких миграций, попробуйте

manage.py makemigrations thumbnail 
manage.py migrate

Это создаст миграции для эскизов, а затем перенесет их. Меня устраивает. Я использую Django 1.9 и sorl.thumbnail 12.3.

Ответ 3

Используйте версию 12.3 для эскиза sorl. Выполните следующие шаги.

Удалить актуальную версию

pip uninstall sorl-thumbnail

Установить версию 12.3

pip install git+git://github.com/mariocesar/[email protected]

Миграция

python manage.py migrate

Ответ 4

Для меня ошибка произошла только при выполнении dumpdata.

Итак, если вы нашли этот поток здесь, потому что вы пытались использовать dumpdata, то исключение миниатюрного приложения, вероятно, будет легким обходным путем для вас:

python manage.py dumpdata --exclude thumbnail

Конечно, вы должны следовать другим ответам, если хотите, чтобы ваш Django был чистым.