4

请教如何在 sqlalchemy model 的 event 里面停止删除或者用其他方式实现软删除

 2 years ago
source link: https://www.v2ex.com/t/833886
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  Python

请教如何在 sqlalchemy model 的 event 里面停止删除或者用其他方式实现软删除

  efrigate43 · 1 天前 · 374 次点击

model


def crudset(classModel):
from datetime import datetime as dt

    @event.listens_for(classModel, "before_insert")
    def model_brfore_insert(target, value, initiator):
        initiator.dt_create = dt.now().strftime("%Y-%m-%d %H:%M:%S")

    @event.listens_for(classModel, "before_update")
    def model_brfore_update(target, value, initiator):
        initiator.dt_update = dt.now().strftime("%Y-%m-%d %H:%M:%S")

    @event.listens_for(classModel, "before_delete")
    def model_before_delete(target, value, initiator):
        from copy import deepcopy

        item = deepcopy(initiator)
        item.dt_delete = dt.now().strftime("%Y-%m-%d %H:%M:%S")

        print(str(item))
    

正在写 model_before_delete 这个方法,如何能把 dt_delete 这个字段的值 作为软删除的标志,并且停止当前删除的操作,已达到软删的目的,又或者有什么软删的附加库可用吗?

我初学者刚接触不久 请各位大佬赐教


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK