Djangoの皆様、お世話になっております。
プログラム内から利用するModelのカラム名を
動的に指定したいのですが、どうすればいいのでしょうか?
良い方法があれば教えて下さい。
例えば、次の文のcolumnの部分を変数にして動的に変更したいのです。
model.column = hoge
次のようにするとエラーになってしまうため、質問させてもらいました。
model[column] = hoge
でどうでしょう?
山下 英孝 wrote:
> Djangoの皆様、お世話になっております。
> プログラム内から利用するModelのカラム名を
> 動的に指定したいのですが、どうすればいいのでしょうか?
> 良い方法があれば教えて下さい。
>
> 例えば、次の文のcolumnの部分を変数にして動的に変更したいのです。
> model.column = hoge
>
> 次のようにするとエラーになってしまうため、質問させてもらいました。
> model[column] = hoge
--
Yasushi Masuda
http://ymasuda.jp/
間違っていたら申し訳ない。
model.__dict__['column'] = hoge
で行けると思います。
Yasushi Masuda wrote:
> > プログラム内から利用するModelのカラム名を
> > 動的に指定したいのですが、どうすればいいのでしょうか?
> >
> > 例えば、次の文のcolumnの部分を変数にして動的に変更したいのです。
> > model.column = hoge
> >
> setattr(model_instance, 'fieldname', value)
> でどうでしょう?
教えて頂いた方法で、できました!
Djangoで動的にモジュールを読み込んで、関連するDBのカラムに
情報を保存するという処理がしたくて困っていました。
どうもありがとうございました。
Ryosuke Nakai wrote:
> model.__dict__['column'] = hoge
> で行けると思います。
こちらの方法でもOKでした。
model.__dict__[column] = hoge
(columnhは変数なのでクォート取りました)
いろいろと方法はあるんですね。
とても勉強になりました。
どうもありがとうございました。