私は112のフィールドを持つ巨大な登録テーブルを持っていました。特定の検索については、私は17フィールドを比較したいと思っています&変数を 'clrSelected'と言う色を割り当てます。 私のコードは次のとおりです。Django 1.4 - 辞書に格納されたフィールドを使用して反復をクエリする
reg = Regisration.objects.filter('some condition').order_by("name")
for r in reg:
if r.name=='abc': clrSelected='#fff'
if r.type=='1': clrSelected='#000'
if r.appl=='10': clrSelected='#c1ff51'
if r.code=='': clrSelected='#60c5f7'
if r.qlty=='first': clrSelected='#f99334'
...
...
着色する必要がある唯一のかの条件があるでしょう。つまり、比較されるフィールド(辞書からのフィールド)は、ユーザーの選択に基づいて変更されます。 私はこの
flds = {'1':'name', '2':'type', '3':'appl', '4':'code', '5':'qlty',...}
のように辞書からフィールド名をアクセスし、それを私は上記のようにフィールドを使用することができますどのようにこの
if r.flds['1']=='abc': clrSelected='#fff'
のようなものを使用します。私は質問に答えるためにはDjango 1.4 &のpython 2.7
は、「変数名からフィールドに動的にアクセスする方法は?」リストではなくフィールド名を格納する構造体として辞書を使用する理由はありますか? – ChidG
yup..i辞書からフィールドに動的にアクセスしたい。アクセスするフィールドはユーザーの選択に依存します。 – user123
答えとして、getattrを使ってフィールドに動的にアクセスしてください。あなたは辞書は必要ありません。ここのリストも同様にうまくいくでしょう。 – ChidG