如果对象已经存在(基于提供的参数),我希望从数据库中获取该对象,如果不存在,则创建该对象。
Django的get_or_create (或source)可以做到这一点。在SQLAlchemy中有没有类似的快捷方式?
我现在明确地写出来,就像这样:
def get_or_create_instrument(session, serial_number):
instrument = session.query(Instrument).filter_by(serial_number=serial_number).first()
if instrument:
return instrument
else:
instrument = Instrument(serial_number)
session.add(instrument)
return instrument发布于 2016-12-01 23:33:58
我稍微简化了@Kevin。避免在if/else语句中包装整个函数的解决方案。这样就只有一个return了,我觉得它更干净:
def get_or_create(session, model, **kwargs):
instance = session.query(model).filter_by(**kwargs).first()
if not instance:
instance = model(**kwargs)
session.add(instance)
return instancehttps://stackoverflow.com/questions/2546207
复制相似问题