Admin site保存時twitterに投稿する

前準備

この内容を実行するには

がインストールされているのが前提です。

仕様

  1. Admin siteの設定したモデルで保存した場合、twitterに投稿する。

コマンドラインからの投稿

python-twitter Usingを参照して進めます。

>>>import twitter
>>>api = twitter.Api(username = 'xxx', password = 'xxx')
>>>status = api.PostUpdate('Test!')

以上でtwitterに投稿することができます。

Admin siteから利用してみる

Admin siteのみ使用するので、admin.pyに記述します。

admin.py

from django.contrib import admin
・・・
import twitter

class TestAdmin(admin.ModelAdmin):
    ・・・

    def save_model(self, request, obj, form, change):
        obj.save()
        #以下に投稿処理を記述
        api = twitter.Api(username = 'xxx', password = 'xxx')
        status = api.PostUpdate('')

モデルに保存した時に処理を行うため、save_model関数をオーバーライドさせ
たった数行で実現できます。

twitterにアカウントをお持ちの方いかがですか。

twitter 2009-04-09 01:37:20.997251

参照サイト

Recent Updates

URLConf Tip 01 - キャプチャの有無にかかわらず同一のviewで処理する
Markdownの入力補助"wmd"をAdmin siteで使う
ModelFormでfieldのwidgetを変更する
動的なformを作る 6 - Dynamic Inline Admin site編
Formsetsを使う3 - inlineformset_factory編
動的なformを作る 5 - django-dynamic-formset編
Formクラスからメディアを定義する
複数のmodelを結合する 2 - Proxy model編
複数のmodelを結合する 1
ModelFormでfieldの表示順番を変える
Admin siteのwidgetを個別に変更する
formfield_overridesを使ってAdmin siteのwidgetを変更する
Admin siteのlist_displayをカスタマイズする - リンク編
Admin siteのlist_displayをカスタマイズする - 基本編
Admin siteのTextareaの高さを自在に変更する - admin.py編