Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: spitzОтветов: 1

Я прекрасно обращался к своей другой базе данных, используя 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'

mongoenginegridfs

Ответы

Ответ 1 · рейтинг 1 · spitz

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы