DjangoのModelsでsave()が変わってた、多分かなり前から。

 さて、先日このサーバのDjangoを1.1.1から1.2.3へアップデートしたわけですが、その際にちょっとだけこのblog風アプリに手を入れなければなりませんでした。
 1.1系から1.2系へのアップデートはマイナーアップデートとはいえバグフィックスみたいなレベルではないので影響が出てしまったようですね。

 修正が必要になったのはdjango.db.models.Model.save()メソッドです。そういえばこのメソッド、1.0対応した時にも修正した記憶があります。こういうよくOverrideするメソッドをちょいちょい仕様変更するなと思いつつも、こういう重要なメソッドだからこそ必要な仕様変更ならば積極的に導入して欲しいとか矛盾する事を思ったりとか。
 具体的には

def save(self,force_insert=False,force_update=False):

 みたいな定義のメソッドが、

def save(self,*args,**kwargs):

 みたいな定義に変わっていました。

 Django | Models | Django documentation

 詳しくは上記公式ドキュメントを参照して頂きたいですが、この変更、実は1.1の時点で行われていたっぽいですね、1.1のドキュメント(Django | Models | Django documentation)を見ても同じ内容になっています。実際のところ、今回全てのsave()メソッドの修正を行いましたが、問題が出なかったところもあったので、私のアプリではこのタイミングで発覚しただけなのかも。
 それでも、然程大きな修正が必要だったわけではないので優秀と言えるのかも知れないですね。