我正在尝试建立两个表之间的关系,使我能够访问obj1.obj2.name,其中obj1是一个表,obj2是另一个表。这是一对一的关系(一个人对应一个地理区域)。
# Table one (Person)
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100))
region = db.Column(db.Integer, db.ForeignKey('region.id'))
# Table two (Region)
class Region(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
如果我使用Person.region(其中Person是Person类的对象),我会得到用户区域主键的int值,但我想获取与其关联的“名称”字段。
我已经想出了以下解决方法:
region = models.Region.query.filter_by(id=REGION_ID).first().name
但在我的情况下不适用,因为我需要从Flask模板中访问“name”字段。有什么想法吗?
Person
中的Person.region
,还是在访问特定的人?也就是说,是使用db.session.query(Person.region, etc...)
还是person = Person.get_or_404(1); person.region
? - Sean Vieira