【发布时间】:2016-07-02 16:09:07
【问题描述】:
假设我需要在保存模型后调用我自己的函数def do_stuff()。如果该模型在我创建的应用程序中,那将没问题。我可以这样做:
def save(self, *args, **kwargs):
super(Post, self).save(*args, **kwargs)
do_stuff()
但保存模型时,我需要在第 3 方应用程序中调用 save()。我可以想到只将所有项目复制到我的本地目录并附加save() 方法,但这并不好,因为我必须复制所有应用程序代码。有没有更好的方法来做到这一点?
编辑:
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在不同的文件夹中。