読者です 読者をやめる 読者になる 読者になる

Django 1.0beta1で作ったアプリを1.0rc1で動かすためにやったこと。

Django Python

1.0rc1リリース記念。

saveメソッドのシグネチャ変更

http://docs.djangoproject.com/en/dev/ref/models/instances/#saving-objects
beta1からrc1にアップデートしたら、軒並みテストに失敗したので焦った。

force_insert と force_update が追加された。なのでsaveメソッドをオーバーライドするときはこう書く。

def save(self, force_insert=False, force_update=False):
    super(Hoge, self).save(force_insert, force_update)

Managerを継承するときはコンストラクタを呼ぶ

サブクラスでManagerの__init__を呼ばないと「_inherited属性がない」って怒られます。

class CustomManager(models.Manager):
    def __init__(self, *args, **kwargs):
        super(CustomManager, self).__init__()

あと解決してほしい不具合

http://code.djangoproject.com/ticket/8194
ユーザーを新規作成するとき(/admin/auth/user/add/)、javascriptでエラーになる。getElementByIdの引数が空になってるみたい。でもクローズされてるなあ。