Декларативное свойство SQLAlchemy из объединения (один атрибут, а не весь объект)

Я хочу создать сопоставленный атрибут объекта, который заполняется из другой таблицы.

Используя пример документации SQLAlchemy, я хочу, чтобы поле user_name существовало в классе Address, чтобы его можно было легко запрашивать и легко получать к нему доступ (без повторного обращения к базе данных)

Например, я хочу чтобы иметь возможность запрашивать и фильтровать по user_nameAddress.query.filter(Address.user_name == 'wcdolphin').first() А также получить доступ к атрибуту user_nameвсех объектов Address без потери производительности, и он должен правильно сохранять записи, как и ожидалось бы от атрибута в __tablename__

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    addresses = relation("Address", backref="user")

class Address(Base):
    __tablename__ = 'addresses'

    id = Column(Integer, primary_key=True)
    email = Column(String(50))
    user_name = Column(Integer, ForeignKey('users.name'))#This line is wrong

. Как мне это сделать?

Я обнаружил, что документацию относительно сложно понять, так как она не соответствует большинству примеров, особенно примерам Flask-SQLAlchemy.

8
задан Jeff Widman 11 November 2015 в 07:57
поделиться