SqlAlchemy:如果不存在则创建对象?

AP2*_*257 7 sqlalchemy

我是SQLAlchemy的新手.我目前有:

ev = model.EnumerationValue(key=key_level_2, code=level_2)
ev.keyvalues[key_parent] = level_1
model.Session.add(ev)
Run Code Online (Sandbox Code Playgroud)

如何更改此选项,以便仅在尚未存在的情况下添加该对象?这样会很好......

model.Session.create_if_does_not_exist(ev)
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ale*_*son 3

标准模式似乎是:

ev = model.Session.query(model.EnumerationValue).filter(model.EnumerationValue.key==key_level_2).filter(model.EnumerationValue.code==level_2).count()
if not ev:
    ev = model.EnumerationValue(key=key_level_2, code=level_2)
    ev.keyvalues[key_parent] = level_1
    model.Session.add(ev)
Run Code Online (Sandbox Code Playgroud)

不是很优雅(我可能有语法错误 - 抱歉),但可以完成工作。