доступ к gridfs mongoengine в нескольких базах данных

Я прекрасно обращался к своей другой базе данных, используя db_alias для большинства полей. Однако для моделей с FileField() или ImageField() мне не удалось получить доступ к файлу в другой базе данных. db_alias неправильно ссылается на fs.files и fs.chunks в другой базе данных?

class File(db.Document):
     file = db.ImageField()
     meta = {"db_alias": "OtherDB"}

for i in File.objects.all():
     print i.file          # Shows '<ImageGridFsProxy: (no file)>'
     print i.file.length   # Shows 'AttributeError'

person spitz    schedule 17.08.2016    source источник


Ответы (1)


Просматривая отчеты о проблемах mongoengine на github, я наткнулся на один, который дал мне подсказку. По сути, для FileField() или ImageField() необходимо поместить db_alias прямо в поле. Например, это работает:

class File(db.Document):
     file = db.ImageField(db_alias="OtherDB")
person spitz    schedule 18.08.2016