Tôi muốn tạo thuộc tính ánh xạ của đối tượng được điền từ bảng khác.SQLAlchemy thuộc tính khai báo từ tham gia (thuộc tính duy nhất, không phải toàn bộ đối tượng)
Sử dụng ví dụ tài liệu SQLAlchemy, tôi muốn thực hiện một lĩnh vực user_name tồn tại trên lớp Địa chỉ như vậy mà nó có thể được cả hai dễ dàng truy vấn và dễ dàng truy cập (mà không có một chuyến du lịch vòng hai cơ sở dữ liệu)
Ví dụ, tôi muốn để có thể truy vấn và lọc theo user_name
Address.query.filter(Address.user_name == 'wcdolphin').first()
và cũng truy cập vào user_name
thuộc tính của tất cả các đối tượng Địa chỉ, mà không bị phạt hiệu suất, và có nó đúng cách kiên trì viết như được mong đợi của một thuộc tính trong __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
Làm cách nào để thực hiện việc này?
Tôi thấy tài liệu tương đối khó hiểu, vì nó dường như không phù hợp với hầu hết các ví dụ, đặc biệt là các ví dụ Flask-SQLAlchemy.
Chính xác là sai với tài liệu? [Sqlalchemy tutorial] (http://docs.sqlalchemy.org/en/rel_0_7/orm/tutorial.html) bao gồm mọi thứ cho các tác vụ phổ biến. Và các khái niệm nâng cao được tìm thấy trong phần còn lại của tài liệu. – schlamar