Django中的ImageKit
我在一个Django应用中实现ImageKit,按照我的理解,所有设置都已经正确完成。当我运行这个命令时:
$python manage.py ikflush main
这个命令看起来运行得很好,但似乎没有任何反应。没有任何图片被调整大小或存储,也无法访问。
main.models.py:
class ProductImage(models.Model):
product = models.ForeignKey(Product)
image = models.CharField(max_length=255, null=True, blank=True)
original = models.ImageField(upload_to='uploads/product-images/zoom/')
class IKOptions:
spec_module = 'main.specs'
cache_dir = 'uploads/cache'
image_field = 'original'
main.specs.py:
from imagekit.specs import ImageSpec
from imagekit import processors
class ResizeSmall(processors.Resize):
width = 230
height = 289
crop = False
class SmallImage(ImageSpec):
access_as = 'small_image'
pre_cache = True
processors = [ResizeSmall]
在模板中: (什么都没有打印出来)
{% for image in images %}
{{ image.small_image }}<br />
{% endfor %}
有没有人知道怎么调试这个问题?我真的很想用ImageKit,但我以前从未实现过。提前谢谢大家!
2 个回答
1
这可能只是提问时格式上的错误,而不是你代码的问题。不过,IKOptions
应该放在你的模型类里面:
class ProductImage(models.Model):
# fields, etc...
class IKOptions:
# ...
另外,在你运行 ikflush 之前,你有没有在设置文件的 INSTALLED_APPS
中添加 ImageKit 呢?
1
你的ProductImage模型需要从imagekit.models.ImageModel这个类继承,而不是从models.Model继承。