Python 我可以将Django信号保存在空应用程序中吗
我想为我的许多应用程序和django contrib评论实现信号。我不能创建一个应用程序,将其加载到settings.INSTALLED_APPS的顶部,然后在django APPS之后加载,然后将所有信号放入views.py文件中吗Python 我可以将Django信号保存在空应用程序中吗,python,django,Python,Django,我想为我的许多应用程序和django contrib评论实现信号。我不能创建一个应用程序,将其加载到settings.INSTALLED_APPS的顶部,然后在django APPS之后加载,然后将所有信号放入views.py文件中吗 原则上,你可以这样做 您希望在启动期间注册信号。一种方法是确保在启动期间导入视图,例如从URL.py导入视图 但是,我建议使用推荐的方法,并在应用程序启动代码中注册它们。请参阅 由于MyModelSaveSignal是一个方法而不是一个类,您应该选择一个小写名称。
原则上,你可以这样做 您希望在启动期间注册信号。一种方法是确保在启动期间导入视图,例如从URL.py导入视图 但是,我建议使用推荐的方法,并在应用程序启动代码中注册它们。请参阅
由于MyModelSaveSignal是一个方法而不是一个类,您应该选择一个小写名称。什么东西不符合您的预期?不,我只是想知道这是否是一种注册信号的可行方法,因为我不知道将django contrib commetsHow的信号代码放在哪里。我是否为django contrib commetsHow之类的软件包注册信号?我把它们放在哪里?你能在你的基本URL.py顶部导入一个signals.py文件吗?这不是办法。请阅读上面提供的链接。您可以在应用程序中注册来自其他应用程序的信号处理程序。你在想什么信号?django contrib评论。不知道该把它放在哪里
# > ./manage.py startapp signals
# > vim myapp/settings.py
...
INSTALLED_APPS = {
...
'signals',
...
}
...
# > vim signals/view.py
...
from django.db.models.signals import post_save
from django.dispatch import receiver
from djanfo_comments.odels import Comment
from myapp.mymodels import MyModel
@receiver(post_save, sender=Comment)
def commentSaveSignal(sender, **kwargs):
...
...
@receiver(post_save, sender=MyModel)
def myModelSaveSignal(sender, **kwargs):
...
...