1

約 20 行のテーブルを使用して、データベースの挿入を試みています。インサートは次のようになります。

if not title.name:
    title.name = data['title']
if not title.synopsis:
    title.synopsis = data['synopsis']
...

基本的に、すべての db 列に存在しない場合は行を更新しています。

これを行うためのよりクリーンで効率的な方法は何でしょうか?

4

3 に答える 3

3
for column in ('name', 'synopsis', 'something', 'other'):
    if not getattr(title, column):
        setattr(title, column, data[column])
于 2013-02-17T23:03:49.147 に答える
1

あなたが使用することができます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])
于 2013-02-17T23:04:44.297 に答える
1

使用getattrsetattr機能:

for attribute in ['title', 'synopsis']:
   if not getattr(title, attribute):
       setattr(title, attribute, data[atribute])

あなたはここでそれらについてもっと読むことができます。

于 2013-02-17T23:04:57.887 に答える