0

私のdjangoプロジェクトには、構成フィールドに対応する次のような辞書があります。

{u'active': True,
 u'alert': {u'item_sent': True,
            u'emails': [u'test@test.com', u'test@test.com'],
            u'job': u'500.00',
            u'in_negative': False}}

'.fake'上記の各メールをループして末尾に追加するにはどうすればよいですか? 私はこれを目指していた -"test@test.com.fake"

私はこれを行っていましたが、リスト項目は変更されませんでした:

for p in practice:
    email_count = len(p.config['alert']['emails'])
    if email_count > 0:
        print 'WE HAVE EMAILS'
        i = 0
        while i < email_count:        
            p.config['alert']['emails'][i] += '.fake'
            print p.config['alert']['emails'][i]
            i += 1
        p.save()
4

2 に答える 2

3

あなたのコードがリスト項目の変更に失敗する理由はわかりませんが、これを試してください:

for p in practice:
    p.config['alert']['emails'] = [e + '.fake' for e in p.config['alert']['emails']]
于 2012-12-07T15:24:33.233 に答える
0

p.config を編集する前に変数に割り当てる必要があることがわかりました。「P」は練習オブジェクトを表します。

for p in practices:
    config = p.config

    config['alert']['emails'] = [
        '.{0}.fake'.format(x)
        for x in config['alert']['emails']
    ]

    p.config = config

    p.save()
于 2012-12-07T16:18:56.667 に答える