【问题标题】:sorl-thumbnail unable to create cachesorl-thumbnail 无法创建缓存
【发布时间】:2023-04-08 04:48:01
【问题描述】:

我正在使用缩略图来显示图像预览。但是,thumbnail 无法创建缓存文件夹,mysql 数据库中的 thumbnail_kvstore 始终为空。

这是我的代码: 在settings.py中:

INSTALLED_APPS = (
...
'sorl.thumbnail',
)
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/').replace('\\','/')
MEDIA_URL = '/media/'

在 urls.py 中:

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在models.py中:

from sorl.thumbnail import ImageField

class Image(models.Model):
    file = models.ImageField(upload_to="images")
    user = models.ForeignKey(User)

在模板中:

{% thumbnail image "100x100" crop="center" as im %}
    <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}

缩略图生成的im.url看起来像“/media/cache/6f/9d/6f9dc8d01bf2a23448525d0902a63cd6.jpg”

但是,在 media/ 下没有生成缓存文件夹,我的图像存储在 media/images 中。 mysql 数据库中的 thumbnail_kvstore 表也是空的。

我见过几个类似的问题(Question1Question2)。似乎 MEDIA_ROOT 或 MEDIA_URL 配置不正确。有人可以帮我吗?

【问题讨论】:

标签: django sorl-thumbnail


【解决方案1】:

原来我使用了错误的 ImageField。在models.py中,我应该使用sorl.thumbnail.ImageField,而不是内置的django.db.models.ImageField

【讨论】:

    猜你喜欢
    • 2012-09-18
    • 2014-10-14
    • 2015-12-06
    • 2021-05-09
    • 2019-06-10
    • 2014-12-21
    • 2012-11-18
    • 2021-06-22
    • 2017-05-16
    相关资源
    最近更新 更多