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

在处理文件上传的 View 函数中(其中 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 一起使用是不可能的(或至少是不切实际的)吗?

最佳答案

我知道这个问题很老,但当时似乎没有对 ImageField in mongoengine - this was added in version 0.6. 的支持

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

关于django - 将 mongoengine 与 models.ImageField 一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7800862/

10-15 00:47