動的に変数を定義するために
リストの中身を名前にした変数を返す関数を作成したいです。
説明がややこしくて申し訳ございません。
例えば
['name','name2']の配列を関数に渡すと
python
1name = forms.CharField( 2 max_length=200, 3 required=False, 4 ) 5name2 = forms.CharField( 6 max_length=200, 7 required=False, 8 )
のような変数を返す仕組みをpythonで実現したいです。
試したこと
以下のようにコードを作成しましたが
上述した例のように
変数 = 値
の形で値を返すことができません。
python
1class ContentForm(forms.Form): 2 def create_form(myary, *args): 3 myray = forms.CharField( 4 max_length=200, 5 required=False, 6 ) 7 for arg in args: 8 arg = forms.CharField( 9 max_length=200, 10 required=False, 11 ) 12 13 return myray, arg 14 15 create_form(*['name','name2','name3'])
補足情報
djangoで動的なフォームフィールドを作成することが目的です。
python
1配列[key] = forms.CharField()
しかし、上のような書き方で実現しようとするとエラーになってしまいます。
調べたところ、リストや辞書をフィールド名にする方法は使用できないようです。
そのため、
リストを変数名に使用する方法やexec()を使用する以外で動的な変数の作成をする方法を探しています。
質問の回答でなくても良いので、実現する方法やアイデアをご教示いただけないでしょうか。
このままでは関数を100個書くというとても汚いプログラムしか思いつきません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/19 08:07