我正在使用缩略图来显示图片预览。但是,缩略图无法创建缓存文件夹,而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 /下没有生成缓存文件夹,我的图像存储在媒体/图像中。此外,mysql数据库中的thumbnail_kvstore表始终为空。
我看过几个类似的问题(Question1或Question2)。似乎没有正确配置MEDIA_ROOT或MEDIA_URL。有人可以帮我吗?
答案 0 :(得分:0)
事实证明我使用了错误的ImageField。在models.py中,我使用 sorl.thumbnail.ImageField 而不是内置的 django.db.models.ImageField 。