Size: a a a

2020 May 16

T

Tishka17 in Python Flask
А почему люди просто не юзают алхимию?
источник

T

Tishka17 in Python Flask
У нее есть какие-то проблемы, которые они пытаются решить?
источник

A

Alex in Python Flask
Tishka17
А почему люди просто не юзают алхимию?
источник

SM

Setplus Mac in Python Flask
ребят, подскажите плиз

есть некоторая БД, в которой есть 3 таблицы: users, sites, user_site (ассоциативная many-to-many)

вот код, который "генерирует строение" ORM User и Site из users и sites:

engine = create_engine(os.environ.get('DATABASE_URL'))
Base = declarative_base()
Base.metadata.reflect(engine)


class User(Base):
   table = Base.metadata.tables['users']

class Site(Base):
   table = Base.metadata.tables['sites']


В общем, проблема в том, что когда я пытаюсь получить у объекта класса User параметр sites (который точно у него есть), flask мне пишет:

AttributeError: 'User' object has no attribute 'sites'

Как решить эту проблему?
источник

T

Tishka17 in Python Flask
Setplus Mac
ребят, подскажите плиз

есть некоторая БД, в которой есть 3 таблицы: users, sites, user_site (ассоциативная many-to-many)

вот код, который "генерирует строение" ORM User и Site из users и sites:

engine = create_engine(os.environ.get('DATABASE_URL'))
Base = declarative_base()
Base.metadata.reflect(engine)


class User(Base):
   table = Base.metadata.tables['users']

class Site(Base):
   table = Base.metadata.tables['sites']


В общем, проблема в том, что когда я пытаюсь получить у объекта класса User параметр sites (который точно у него есть), flask мне пишет:

AttributeError: 'User' object has no attribute 'sites'

Как решить эту проблему?
Как ты понял, что он "точно есть"?
источник

SM

Setplus Mac in Python Flask
я генерировал эти таблицы, используя flask-sqlalchemy
источник

SM

Setplus Mac in Python Flask
class User(UserMixin, db.Model):
   ...
   sites = db.relationship('Site',
       secondary=user_site,
       backref=db.backref('users', lazy='dynamic'),
       lazy='dynamic'
   )
источник

T

Tishka17 in Python Flask
Я не в курсе, а рефлект рилейшены генерит разве?
источник

SM

Setplus Mac in Python Flask
а вот тоже хз(
источник

SM

Setplus Mac in Python Flask
уже начал думать, что подоху нет
источник

SM

Setplus Mac in Python Flask
видимо, inspect надо юзать
источник

SM

Setplus Mac in Python Flask
я просто думал, что я что-то не понял в этом методе reflect
источник

T

Tishka17 in Python Flask
А почему нельзя просто скопировать модели?
источник

T

Tishka17 in Python Flask
Зачем тебе рефлект?
источник

SM

Setplus Mac in Python Flask
Tishka17
А почему нельзя просто скопировать модели?
я просто новичок. Я хотел добиться того, чтобы сгенерировать из существующей БД ORM-классы, чтобы потом с ними удобно было работать
источник

T

Tishka17 in Python Flask
Хз, не пробовал так
источник

SM

Setplus Mac in Python Flask
хм..

rels = inspect(User).relationships
print([rel.mapper.class_ for rel in rels])

даже это не помогает...
источник

SM

Setplus Mac in Python Flask
возвращает пустой список
источник

SM

Setplus Mac in Python Flask
короче, в итоге просто скопировал содержимое migrations и файл models.py

но мне кажется, что это — не элегантное решение.
источник

T

Tishka17 in Python Flask
а нельзя просто импортировать?
источник