SQL炼金术与当前选项卡的多对多关系

2024-10-03 17:16:03 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的应用程序,我需要创建一个点是相同的实体链接。目前我是这样做的。你知道吗

association_table = db.Table('main_connectedpoints', Base.metadata,
                             db.Column('point_id', db.Integer, db.ForeignKey('main_placepoint.id')),
                             db.Column('connected_point_id', db.Integer, db.ForeignKey('main_placepoint.id')))


class PlacePoint(db.Model):
    __tablename__ = 'main_placepoint'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String())
    lat = db.Column(db.Float())
    lon = db.Column(db.Float())
    address = db.Column(db.String())
    organizations = db.relationship('Organization', backref='main_placepoint',
                                    lazy='dynamic')
    related_points = db.relationship("PlacePoint",
                                     secondary=lambda: association_table)

    def __init__(self, dict_):
        self.name = dict_['name']
        self.lat = dict_['lat']
        self.lon = dict_['lon']
        self.address = dict_['address']

    def __repr__(self):
        return "Place %r" % self.address

    def as_dict(self):
        return {"name": self.name, "lat": self.lat, "lon": self.lon, "address": self.address}

但是我有以下错误:norReferencedTableError:与列'main'关联的外键_connectedpoints.point\标识'找不到表'main\u placepoint',无法使用该表为目标列'id'生成外键'

我想这是因为PlacePoint类没有实例化。有办法解决吗?你知道吗


Tags: nameselfiddbmainaddressdefcolumn