2009年11月16日月曜日

Django+python pk は db に書き込むまでわからない

 インスタンスの画像データを pk を含むディレクトリに入れようとしたら、動かない。この間は出来たのにと思い調べると、
・修正のときは動く
・新規登録のときは動かない
ことが判明。db に登録前は pk が無効ということが判明 orz。

 じゃあ自前の変数に pk のコピーを持とうかと思ってコンストラクタをオーバライドしたら動きが変。
 調べていくと、オーバーライドしたコンストラクタが、もとのコンストラクタを、引数を全部準備して呼び出さなくはならないことが判明。
 引数が合わなくてもエラーもワーニングも出さないんだもん、python って。いや、MT のライブラリのバージョンが合わないときもこれで嵌ったから ll 全般の傾向か。
 メソッドをオーバーライドするときは親のクラスの元のメソッドを調べなくてはならないことが判明。これって C++ では当たり前だったっけ?少なくとも引数の型が合わないとエラーになったはず。
 こういう不具合の種をまかないために型チェックが厳しくなったはずなのに...。

 import している models の場所がわからなくて結構探した。おいらの環境では C:\Python262\Lib\site-packages\django あたりにあるらしい。

0 件のコメント:

コメントを投稿