我正在使用SQLobject,到目前为止还没有找到一个优雅的解决方案来解决“更新数据库中的行或创建一个新行(如果它不存在)”。
目前我使用以下有些复杂的代码:
args = dict(artnr=artnr, name=name, hersteller='?', hersteller_name='?')
if cs.datamart.ArtNrNameHersteller.selectBy(artnr=artnr).count():
row = cs.datamart.ArtNrNameHersteller.selectBy(artnr=artnr)[0]
row.set(**args)
else:
cs.datamart.ArtNrNameHersteller(**args)
显然,这远非简洁、健壮、优雅或快速。这样做的正确方法(TM)是什么?