我有一個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