Python で動的に変数を使いたいのですが、無理なのでしょうか。
非エンジニアの素人です。質問が分かりにくければすみません。
Python DjangoフレームワークでWEBアプリ作成にチャレンジしています。
Views.py内で同じ内容をユーザーごとに何度も書くのが面倒なので、for文でユーザーリストから簡単に作りたいなと思い、ググりながらようやく以下のようなコードを作りました。
llist = ['tour','som','aim']
for p in llist:
code = '{} = Eva_{}.objects.all()'.format(p,p)
exec(code)
code2 = '{}total = 0'.format(p)
exec(code2)
for i in eval(p):
code3 = '{}total += i.contribution'.format(p)
exec(code3)
一見うまくいくと思い喜んでいたのもつかの間、実際には変数をこの後のコードで参照しようとするとnot definedというエラーとなり、上記内にある変数からテンプレートにデータを運べないということで使えませんでした。
ググるとexec関数はそのような動きをするということは何となくわかったのですが、やはり無理なのでしょうか。実際にユーザーリストはかなりの数になるので何度も同じ内容を書くのはおっくうです。必ず簡単な方法があるのだと信じているのですが、良い方法があればご教示いただけると幸いです。
よろしくお願いします!