私は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 で失敗するのはなぜですか?
何か案は?私の間違いはどこですか?ご協力いただきありがとうございます。