約 20 行のテーブルを使用して、データベースの挿入を試みています。インサートは次のようになります。
if not title.name:
title.name = data['title']
if not title.synopsis:
title.synopsis = data['synopsis']
...
基本的に、すべての db 列に存在しない場合は行を更新しています。
これを行うためのよりクリーンで効率的な方法は何でしょうか?
for column in ('name', 'synopsis', 'something', 'other'):
if not getattr(title, column):
setattr(title, column, data[column])
あなたが使用することができますor
:
title.name = title.name or data['title']
title.synopsis = title.synopsis or data['synopsis']
または、動的に実行することもできます。
for attr in data:
if not getattr(title, attr):
setattr(title, attr, data[attr])
使用getattr
とsetattr
機能:
for attribute in ['title', 'synopsis']:
if not getattr(title, attribute):
setattr(title, attribute, data[atribute])
あなたはここでそれらについてもっと読むことができます。