Sho*_*nin 5 python null attributes sqlalchemy
如果属性不等于 None,我想更新 SQLAlchemy DB 中的列值。
此方法有效,但似乎不遵循 DRY 原则
def editObject(object_id, name, picture, metaTitle,
metaKeywords, metaDescription):
object = session.query(Object).filter_by(id = object_id).one()
if name:
object.name = name
if picture:
object.picture = picture
if metaTitle:
object.metaTitle = metaTitle
if metaKeywords:
object.metaKeywords = metaKeywords
if metaDescription:
object.metaDescription = metaDescription
session.add(object)
session.commit()
Run Code Online (Sandbox Code Playgroud)
谢谢
您可以使用关键字参数和setattr()
def editObject(object_id, **kwargs):
object = session.query(Object).filter_by(id = object_id).one()
for attr, value in kwargs.iteritems():
if value:
setattr(object, attr, value)
session.add(object)
session.commit()
Run Code Online (Sandbox Code Playgroud)