2016-08-17 4 views
0

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

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' 

ответ

1

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

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