私がモデルを保存した後に私自身の関数def do_stuff()
を呼び出す必要があるとしましょう。そのモデルが私が作成したアプリにあれば問題ありません。私は何ができる:djangoがインストールされているアプリのモデルの保存方法
def save(self, *args, **kwargs):
super(Post, self).save(*args, **kwargs)
do_stuff()
しかし、私は、モデルを保存するときにサードパーティのアプリでsave()
を呼び出す必要があります。すべてのプロジェクトを自分のローカルディレクトリにコピーしてsave()
メソッドを追加することしか考えられませんが、すべてのアプリケーションコードをコピーする必要があるので、これはうまくありません。これを行うにはより良い方法がありますか?
EDITED:
apps.py:
from django.apps import AppConfig
class SubscriptionConfig(AppConfig):
def ready(self):
import subscription.signals
signals.py:
from django.db.models.signals import post_save
from django.dispatch import receiver
from djangocms_blog.models import Post
@receiver(post_save, sender=Post)
def send_emails(instance, **kwargs):
print 'instance %s' %instance
__init__.py:
default_app_config = 'subscription.apps.SubscriptionConfig'
あなたのプロジェクト(あなたの 'settings.py'があるディレクトリ)の名前は' djangocms_blog'か 'subscription'ですか? –
も、 'settings.py'は別のフォルダにありません。 'myprocject/myapp'の –