我有两个表,名称和人物。
名称:
id(int,primary key)
name(varchar)
人:
id(int,primary key)
name_id(int,foreign key-> Name.id)
假设我的模型设置了外键,如果我运行Person.query.first().name_id
,这将返回一个整数。我希望它返回name
varchar。这可能吗?或者我能做些什么来获得相同的结果?
答案 0 :(得分:2)
class Name(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text) # or varchar
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name_id = db.Column(db.Integer, db.ForeignKey('name.id'))
_name = db.relationship('Name')
@property
def name(self):
return self._name.name
获取实际名称可以像这样或在名称功能中使用select。我喜欢这种方式与财产。您需要在关系和其他详细信息中使用联接方式填写详细信息。
您可以@property
到@hybrid_property
从SQLAlchemy获得一些简洁的功能。当然,你需要有效地使用它。