Modelのカラム名を動的に利用する方法

1,477 views
Skip to first unread message

山下 英孝

unread,
Oct 11, 2006, 9:57:53 AM10/11/06
to djan...@googlegroups.com
山下です。

Djangoの皆様、お世話になっております。
プログラム内から利用するModelのカラム名を
動的に指定したいのですが、どうすればいいのでしょうか?
良い方法があれば教えて下さい。

例えば、次の文のcolumnの部分を変数にして動的に変更したいのです。
model.column = hoge

次のようにするとエラーになってしまうため、質問させてもらいました。
model[column] = hoge

--
山下 英孝 <hide...@gmail.com>
http://yamashita.dyndns.org/

Yasushi Masuda

unread,
Oct 11, 2006, 10:16:29 AM10/11/06
to djan...@googlegroups.com
setattr(model_instance, 'fieldname', value)

でどうでしょう?

山下 英孝 wrote:

> Djangoの皆様、お世話になっております。
> プログラム内から利用するModelのカラム名を
> 動的に指定したいのですが、どうすればいいのでしょうか?
> 良い方法があれば教えて下さい。
>
> 例えば、次の文のcolumnの部分を変数にして動的に変更したいのです。
> model.column = hoge
>
> 次のようにするとエラーになってしまうため、質問させてもらいました。
> model[column] = hoge

--
Yasushi Masuda
http://ymasuda.jp/

Ryosuke Nakai

unread,
Oct 11, 2006, 10:39:43 AM10/11/06
to djan...@googlegroups.com
中居です

間違っていたら申し訳ない。

model.__dict__['column'] = hoge

で行けると思います。

山下 英孝

unread,
Oct 11, 2006, 10:51:05 AM10/11/06
to djan...@googlegroups.com
山下です。

Yasushi Masuda wrote:
> > プログラム内から利用するModelのカラム名を
> > 動的に指定したいのですが、どうすればいいのでしょうか?


> >
> > 例えば、次の文のcolumnの部分を変数にして動的に変更したいのです。
> > model.column = hoge
> >

> setattr(model_instance, 'fieldname', value)
> でどうでしょう?

教えて頂いた方法で、できました!

Djangoで動的にモジュールを読み込んで、関連するDBのカラムに
情報を保存するという処理がしたくて困っていました。
どうもありがとうございました。

山下 英孝

unread,
Oct 11, 2006, 4:55:35 PM10/11/06
to djan...@googlegroups.com
山下です。

Ryosuke Nakai wrote:
> model.__dict__['column'] = hoge
> で行けると思います。

こちらの方法でもOKでした。
model.__dict__[column] = hoge
(columnhは変数なのでクォート取りました)

いろいろと方法はあるんですね。
とても勉強になりました。
どうもありがとうございました。

Reply all
Reply to author
Forward
0 new messages