Hallo, ich habe derzeit ein Datenbankmodell, das db.event.listens_for()
als Auslöser verwendet.Wie mehrere Methoden nach db.event.listens_for ausgeführt werden (MODELL, "nach _....")
beispiel
@db.event.listens_for(Order, "after_delete")
def update_table_status(mapper, connection, target):
# print('Checking if the table contains orders')
table = Tables.__table__
orders = Order.query.filter_by(tables_id=target.tables_id).filter(Order.checkout_id == None).all()
# print(orders)
# print(target.tables_id)
if len(orders) == 0:
# print('No orders associated to the table.')
connection.execute(table.update().where(table.c.id == target.tables_id).values(active=0))
# firebase_table(target.store_id)
else:
# print('Orders still associated to the table.')
connection.execute(table.update().where(table.c.id == target.tables_id).values(active=1))
# firebase_table(target.store_id)
ist es eine Möglichkeit, zu einer Gruppe zusammen mehr Methoden und mit nur einer Verwendung der Überzugseinrichtung einen Batch-Betrieb durchführen?
Eine Klasse vielleicht?
@db.event.listens_for(Order, "after_delete")
class OrdersAfterDelete:
def DOA(self):
#do stuff
def DOB(self):
#do stuff
Warum schreibst du nicht einfach eine Funktion, die die anderen Funktionen aufruft und das dekorieren? –
das könnte funktionieren. Aber gibt es einen Weg, es durch eine Klasse zu implementieren? –
Sorry, ich weiß es nicht. Ich habe SQLAlchemy in ein paar Jahren nicht benutzt, deshalb habe ich nur einen Kommentar abgegeben. –