我有一个main_app
和app2
。 main_app
实质上是包含数据的项目列表,并且app2
具有关于所述项目的更多信息。跨应用的Django信号接收
main_app
不应该知道关于app2
,但app2
可以从main_app
导入。
main_app/signals.py
内,我有
import django.dispatch
mysignal = django.dispatch.Signal(providing_args=['uid'])
在main_app/views.py
,我有这使得各种main_templates
,包含该项目,用于编辑的视图,并且一个细节提交所述编辑的数据的图。这个想法是当一个信号被调用时发送一个信号,并且app2
接收到这个信号。 main_template
使用“with
”电话获取template2
以及该应用的信息。
在app2/processes.py
我有以下几点:
import django.dispatch
from django.dispatch import receiver
import my models
from main_app.signals import mysignal, (mysignal2, etc)
然后为每个方法,我有
@receiver(mysignal)
def foo(sender, **kwargs) etc
OK ......所以,在main_app/views.py
,如果我有一行:
from app2.processes import mysignal, mysignal2 etc
一切正常。但我想删除对main_app
中app2
的任何依赖。就我而言,app2
只是从main_app/signals.py
导入这些信号。 但是,如果我试图摆脱上述线路和把下列main_app/views.py
from main_app.processes import mysignal, my...
它不工作...我没有得到一个错误,但是从APP 2中的数据不会渲染成模板,我真的不明白为什么......任何想法?
因此,没有人知道为什么尽管app2.processes从main_app.signals导入信号,但我必须通过app2将信号导入main_app.views,而不是直接从main_app.signals导入信号? – user2564502