【问题标题】:Flask with SQLAlchemy tables doesn't link带有 SQLAlchemy 表的烧瓶没有链接
【发布时间】:2015-05-31 12:01:27
【问题描述】:

我一直在努力解决这个小的 SQLAlchemy 问题。它告诉我 City.address 引用列与 ForeignKeyConstraint 无关。

这是我的模型

#Address model
class Address(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    address = db.Column(db.String(100), nullable=False)

    company_id = db.Column(db.Integer, db.ForeignKey('company.id'))
    city_id = db.Column(db.Integer, db.ForeignKey('city.id'), nullable=False)
    event = db.relationship('Address', backref='event', lazy='dynamic')
    ForeignKeyConstraint(['city_id'],['city.city_id'])

    def __init__(self, address):
        self.address = address

    def __repr__(self):
        return '<Address %r>' % self.address

#City model
class City(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    zip_code = db.Column(db.String(10), unique=True)
    city_name = db.Column(db.String(100), unique=True)
    country = db.Column(db.String(100), unique=True)

    address = db.relationship('City', backref='address', lazy='dynamic')
    events = db.relationship('City', backref='event', lazy='dynamic')

    PrimaryKeyConstraint('id', 'city_id', name='city_pk')


    def __init__(self, zipcode, cityname, country):
        self.zip_code = zipcode
        self.city_name = cityname
        self.country = country

    def __repr__(self):
        return '<City %r>' % self.cityName

我确信这只是一个小问题,但希望让另一双眼睛关注它会有所帮助。

先谢了

【问题讨论】:

    标签: python flask sqlalchemy flask-sqlalchemy


    【解决方案1】:

    查看SQLAlchemy Documentation : Building a Relationship

    我没有尝试过使用 FLASK,但它应该可以使用 relationship

    【讨论】:

    • 感谢您的努力! :)。发现问题了。
    【解决方案2】:
    #City model
    class City(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        zip_code = db.Column(db.String(10), unique=True)
        city_name = db.Column(db.String(100), unique=True)
        country = db.Column(db.String(100), unique=True)
    
        address = db.relationship('City', backref='address', lazy='dynamic')
        events = db.relationship('City', backref='event', lazy='dynamic')
    

    “城市”和“地址”必须互换位置。

    【讨论】:

      猜你喜欢
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 2022-01-06
      • 2018-07-07
      • 2012-12-29
      相关资源
      最近更新 更多