私は2つのテーブルを持っていimage
ますrestaurant
. それらの間に多対多の関係を設定しました。
テーブル定義の関連部分は次のとおりです。
images_assoc = Table('restaurant_image_assoc', Base.metadata,
Column('restaurant', Integer(unsigned=True),
ForeignKey('restaurant.id')),
Column('image', Integer(unsigned=True),
ForeignKey('image.id')))
class Image(Base):
__tablename__ = 'image'
id = Column(Integer(unsigned=True), primary_key=True)
reports = Column(TinyInt, nullable=False, default=0)
created_at = Column(DateTime, default=datetime.now)
class Restaurant(Base):
__tablename__ = 'restaurant'
id = Column(Integer(unsigned=True), primary_key=True)
images = relationship(Image, secondary=images_assoc)
の行を削除する必要がimage
ありますが、もちろん、restaurant_image_assoc
最初にそのポイント内のすべての行を削除する必要があります。どうすればいいですか?
私はこれを試しました:
request.db.query(images_assoc)\
.filter(images_assoc.c.image==image.id).delete()
request.db.delete(image)
request.db.commit()
image
削除したい行はどこにありますが、次のエラーが発生します。
AttributeError: 'Table' object has no attribute 'class_'