4

我无法让 django/mongoengine 应用程序使用django-athumb。我正在尝试保存不同大小的图像并将它们存储在 S3 上,这正是 athumbs 在与股票 django 安装一起使用时所做的。但是,对于 mongoengine,在对象的字段上调用 ​​save() 会导致“ 'ImageWithThumbsField' 对象没有属性 'save' ”消息。

在处理文件上传的视图函数内部(其中 doc.image 是ImageWithThumbsField):

if request.FILES.get('image'):
    file = request.FILES['image']
    fdat = file.read()
    file_contents = ContentFile(fdat)
    doc.image.save(file.name, file_contents)

以上导致上述错误。

如果我改为调用:

doc.image.attr_class(file_contents, doc.image, file.name).save(file.name, file_contents)

我可以访问 save 方法,但它很hackish并且可能会导致更多问题然后解决。我的问题:既然ImageWithThumbsField是 models.ImageField 的子类,那么将models.ImageField与mongoengine一起使用是不可能的(或者至少是不切实际的)?

4

1 回答 1

1

我知道这个问题很老,但当时似乎在 mongoengine 中不支持ImageField - 这是在 0.6 版中添加的。

如果您仍然对 mongoengine 有疑问,请尝试升级到大于 0.6 的版本 .. 他们甚至提供了生成缩略图的功能

于 2013-02-17T21:55:09.673 回答