Python Django-信号应放置在何处?
collection.models.py:Python Django-信号应放置在何处?,python,django,django-models,django-signals,Python,Django,Django Models,Django Signals,collection.models.py: 类集合(模型): items=ManyToManyField(项目) ... item.models.py 类项目(模型): state=OneToOneField('ItemState') ... 类别ItemState(模型): 项目=外键(“项目”) ... 结构解释:一个项目一次只有一个状态,但客户端希望跟踪其状态历史记录 我想写一个信号,在创建集合时创建一个新状态。由于循环导入,我将信号与模型分离。现在我的问题是,我是否在collecti
类集合(模型):
items=ManyToManyField(项目)
...
item.models.py
类项目(模型):
state=OneToOneField('ItemState')
...
类别ItemState(模型):
项目=外键(“项目”)
...
结构解释:一个项目一次只有一个状态,但客户端希望跟踪其状态历史记录
我想写一个信号,在创建集合时创建一个新状态。由于循环导入,我将信号与模型分离。现在我的问题是,我是否在collection\u signals.py
或item\u state\u signals.py
下写入上述信号
我的猜测是两者都会起作用,但搜索上述信号的合理位置是什么?我假设collection是因为collection是发送方,但这同样是关于创建状态的,各种模型将创建状态(例如,当创建一个新项目时,也会触发一个新状态)我假设collection和item是您的两个Django应用程序。因此,在应用程序中创建一个名为signals.py的模块。因此,将有两个文件(理想情况下)
收集/信号.py
项目/signals.py
我想编写一个信号,在创建集合时创建一个新状态
因此,发送方
将是集合
,而通常,相应的信号将在集合/signals.py中
简而言之,看看你的<强>发件人<强>类,检查它所在的地方并在应用程序内创建信号。
你的信号究竟在做什么,你可以考虑重写保存方法而不是使用信号。