Skip to main content
 首页 » 编程设计

python之SQLalchemy 以声明方式描述关联对象的正确方法是什么

2025年05月04日12lyhabc

我正在寻找一种以声明方式描述关联对象的方法。除了在关联表中存储外键外,我还需要存储关联的创建日期等信息。

今天,我的模型看起来像这样:

# Define the User class 
class User(Base): 
    __tablename__ = 'users' 
 
    # Define User fields 
    id = schema.Column(types.Integer(unsigned=True), 
        schema.Sequence('users_seq_id', optional=True), primary_key=True) 
    password = schema.Column(types.Unicode(64), nullable=False) 
 
# Define the UserSubset class 
class UserSubset(Base): 
    __tablename__ = 'subsets' 
 
    # Define UserSubset fields 
    id = schema.Column(types.Integer(unsigned=True), 
        schema.Sequence('subsets_seq_id', optional=True), primary_key=True) 
    some_short_description = schema.Column(types.Unicode(50), nullable=False) 
 
# Define the subset memberships table 
subset_memberships = schema.Table('group_memberships', Base.metadata, 
    schema.Column('user_id', types.Integer(unsigned=True), ForeignKey('users.id')), 
    schema.Column('subset_id', types.Integer(unsigned=True), ForeignKey('subsets.id')), 
    schema.Column('created', types.DateTime(), default=now, nullable=False), 
) 

我可以在一个关联对象中连接所有内容吗?或者我应该使用声明方式更改 stop 吗?

请您参考如下方法:

您目前使用的只是多对多关系。 docs 中描述了如何使用关联对象。 .

还有一个名为 associationproxy 的扩展名这简化了关系。