Djangoのpre_saveとpost_saveがちょっと便利に

Django のちょっとしたコネタ。

モデルの save メソッドには、 raw って引数があるのですが、 r7054 から pre_savepost_save にもコレが入ってくるようになっております。

なので、 pre_savepost_save でコレを見てやる事で、 処理を分岐させる事が出来るようになりました。

rawTrue の場合、 余計な作業は省いてね。って事なので、 このブログではフックの最初で見てあげるようにしております。

def post_save_entry(instance, created, raw):
    """
    エントリーのセーブ後のフック
    """
    if raw or not created:
        # raw=Trueか新規登録じゃ無い場合はココでおしまい。
        return
    # 実際やりたい処理がつづく。

loaddata してデータを取り込む時なんかも rawTrue で入ってくるので、 こんな感じにしておくと余計な処理を省けるので便利。

Posted at: 
2008/02/17 00:39:07
2 Comments
1 TrackBack
Tags: 
Django
Python
Trackback: 
http://humming.via-kitchen.com/2008/02/17/more-useful-save-hook-on-django/trackback/

TrackBacks

[Django]巡回 - 常山日記

Django Snippets: Generate newforms-admin admin.py file Blog: Djangoのpre_saveとpost_saveがちょっと便利に Excluindo e atualizando os dados ModelForm Steps to deploy a Django application on Windows dj-cmdbuild 0.1dev-r15

Created at: 
2008/02/17 03:42:37

Comments

kishi-r

よし!
俺も使おう♪

Created at: 
2008/02/17 01:11:46

nobu

頑張っていこー :-D

Created at: 
2008/02/17 01:15:10

Add Comment

Add Comment