SqlAlchemy: создать объект, если он еще не существует?

Я новичок в SQLAlchemy. В настоящее время у меня есть:

ev = model.EnumerationValue(key=key_level_2, code=level_2)
ev.keyvalues[key_parent] = level_1
model.Session.add(ev)

Как я могу изменить это, чтобы добавить объект, только если он еще не существует? Это было бы неплохо ...

model.Session.create_if_does_not_exist(ev)

Спасибо!

7
задан AP257 16 August 2010 в 12:11
поделиться

1 ответ

Стандартный шаблон выглядит следующим образом:

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)

Не очень элегантный (и у меня могут быть синтаксические ошибки - извинения), но выполняет свою работу.

3
ответ дан 7 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: