【问题标题】:SQLAlchemy - select data associated with foreign key, NOT the foreign key itselfSQLAlchemy - 选择与外键关联的数据,而不是外键本身
【发布时间】:2015-07-15 19:29:17
【问题描述】:

我有两个表,Name 和 Person。

姓名:

  • id(int,主键)

  • 名称(varchar)

人:

  • id(int,主键)

  • name_id (int, foreign key->Name.id)

假设我的模型是用外键设置的,如果我运行Person.query.first().name_id,这将返回一个整数。我希望它返回name varchar。这可能吗?或者我可以做些什么来获得相同的结果?

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:
    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
    

    取回实际名称可以这样完成,也可以通过名称函数中的选择来完成。我更喜欢这种方式与财产。您需要详细填写您在关系中使用联接的方式以及其他详细信息。

    您可以@property@hybrid_property 从 SQLAlchemy 获得一些简洁的功能。当然,你需要有效地使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-26
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      相关资源
      最近更新 更多