表thumbnail_kvstore不存在

时间:2016-02-01 17:15:19

标签: python django sorl-thumbnail

我无法在模板中显示缩略图。我收到这个错误:

  

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 %}
    

4 个答案:

答案 0 :(得分:49)

如果只是

manage.py makemigrations 

不会创建任何迁移,请尝试

manage.py makemigrations thumbnail 
manage.py migrate

这将创建缩略图的迁移,然后迁移它们。 这个对我有用。 我正在使用Django 1.9和sorl.thumbnail 12.3。

答案 1 :(得分:37)

经过一些研究,看起来PyPI和Github上的sorl-thumbnail版本12.3是不同的!

如果直接从PyPI下载源代码,您会发现该软件包不包含任何迁移。 即使您已经运行了所有迁移,这就是表格不存在的原因。

在Github上,版本12.3的{​​{3}}肯定存在。

您有三种选择:

  1. 使用./manage.py syncdb创建表格(仅当您正在运行Django 1.8或更低版本时)
  2. 直接从Github安装版本12.3
  3. 使用包含迁移的sorl-thumbnail版本12.4a1
  4. 您可以直接从Github安装如下:

    pip install git+git://github.com/mariocesar/sorl-thumbnail@v12.3
    

    sorl-thumbnail版本12.3最多支持Django 1.8版,其中syncdb命令仍然存在。如果您正在运行Django 1.8或更低版本,则可以通过运行

    创建缺失的表
    python manage.py syncdb
    

答案 2 :(得分:1)

使用sorl-thumbnail的12.3版。请按照以下步骤操作

删除实际版本

pip uninstall sorl-thumbnail

安装版本12.3

pip install git+git://github.com/mariocesar/sorl-thumbnail@v12.3

迁移

python manage.py migrate

答案 3 :(得分:0)

对我来说,执行dumpdata时发生了错误。

因此,如果您在此处找到此主题是因为您尝试使用dumpdata,那么排除缩略图应用可能是一种简单的解决方法:

python manage.py dumpdata --exclude thumbnail

当然,你应该按照其他答案,如果你想让你的Django干净。