【问题标题】:How to integrate sorl-thumbnail into an existing django project?如何将 sorl-thumbnail 集成到现有的 django 项目中?
【发布时间】:2012-03-28 21:58:16
【问题描述】:

我正在尝试将 sorl-thumbnail 集成到现有项目中,以在 django 管理员中显示 ImageField 照片的缩略图,但是没有结果。

我安装了 sorl 使用

pip install sorl-thumbnail

然后添加

'sorl.thumbnails'

到 settings.py

然后运行manage.py syncdb,然后用

设置admin.py
from django.contrib import admin
from myapp.models import MyModel
from sorl.thumbnail.admin import AdminImageMixin

class MyModelAdmin(AdminImageMixin, admin.ModelAdmin):
    pass

虽然在查看 MyModel 的列表或查看每个人 MyModel 时,我仍然没有在 django 管理员上看到缩略图

我做错了什么?

nb:我使用 South 进行迁移,使用 S3 存储我的应用程序的静态图像

【问题讨论】:

  • 您能否验证 sorl-thumbnail 小部件是否实际被使用? (即在管理页面上查看源代码,看看字段旁边是否有img 标签。)

标签: python django sorl-thumbnail


【解决方案1】:

AdminImageMixin 仅当 ImageFieldsorl-thumbnail's ImageField 的实例时才会更改小部件。所以你的模型需要使用以下内容:

from sorl.thumbnail import ImageField

class MyModel(models.Model):
    some_image = ImageField(...)

而不是django.db.models.ImageField

如果你这样做了,缩略图的img标签应该被添加到管理源中的字段旁边,如果它实际上在源中,那么存储文件可能是一个问题S3 和 sorl-thumbnail 使用的 URL 不匹配。

【讨论】:

  • 我在模型中有from sorl.thumbnail import ImageField,在管理页面上我有以下代码:<div> <label for="id_photo" class="required">Photo:</label> <p class="file-upload">Currently: <a href="https://myapp.s3.amazonaws.com/photos/3.jpeg">photos/3.jpeg</a> <br />Change: <input type="file" name="photo" id="id_photo" /> </p> </div> 即:没有图像字段。我正在查看我的 postgres 上的 kvstore 表,那里没有行,你认为这是一个问题吗?虽然我希望有更多的文档,但对 django 来说是一个很棒的插件。
  • 盯着这段代码太久了,一直在使用models.ImageField 而不是ImageField,这(显然)解决了这个问题。作为对任何感兴趣的读者的补充,集成 S3 和 sorl-thumbnail 似乎没有问题
猜你喜欢
  • 2012-06-21
  • 2013-01-30
  • 2016-05-09
  • 2011-05-13
  • 2017-02-22
  • 2013-11-22
  • 1970-01-01
  • 2011-09-22
  • 2015-09-18
相关资源
最近更新 更多