MongoEngine和GridFS - 使用ImageGridFsProxy写入文件

时间:2013-06-23 17:41:25

标签: image store mongoengine gridfs

我正在使用mongoengine(0.8.2)并尝试使用GridFS功能编写一些图像。这是我宣布我的模型的方式:

class Lady(DynamicDocument):
    id = ObjectIdField()
    name = StringField()
    offers = ListField(EmbeddedDocumentField(Offer))
    pictures = ListField(ImageField())

所以我想做的是将图片附加到图片字段。我尝试的是以下内容:

fileA = open('/home/evermean/Pictures/a.jpg', 'r')
fileB = open('/home/evermean/Pictures/b.jpg', 'r')
upload = [fileA, fileB]

    files = []
    for f in upload:
        mf = ImageGridFsProxy()
        mf.put(f, content_type = 'image/jpeg')
        files.append(mf)
    lady.pictures = files
    lady.save()

我得到的是以下内容:

Error
Traceback (most recent call last):
File "/home/evermean/Code/django/pourlamour/core/tests.py", line 38, in test_basic_addition
mf.put(f, content_type = 'image/jpeg')
File "/home/evermean/Code/django/env/pourlamour/local/lib/python2.7/site-packages/mongoengine/fields.py", line 1257, in put
field = self.instance._fields[self.key]
AttributeError: 'NoneType' object has no attribute '_fields'

我试图弄清楚出了什么问题,而且来自fields.py的以下行似乎是负责任的,虽然我不知道该怎么办。

field = self.instance._fields[self.key]

我也尝试使用GridFSProxy,但是为什么它会因ImageGridFsProxy而失败?

有什么想法吗?我的错误在哪里?谢谢你的帮助。

0 个答案:

没有答案