我有一个模型
class Category(models.Model):
name = models.CharField(unique=True, max_length=45, blank=False, null=False)
perants= models.ManyToManyField('self',through="CategoryParent",symmetrical=False,blank=True)
并且CatigoryPerants
是:
class CategoryParent(models.Model):
chiled_filed=models.ForeignKey("Catigory", on_delete=models.CASCADE,related_name="parent_of_category",blank=False)
parent_filed=models.ForeignKey("Catigory", on_delete=models.CASCADE,blank=False)
我尝试在signal.py中运行一个信号:
@receiver(m2m_changed, sender=Catigory.perants.through )
def CatigoryParentSignals(sender, instance, action, pk_set, **kwargs):
print("Some text or throw Validation Expiation or doin any thing")
问题是当我将新父级添加到Category
来自 Shell 的.parents.set([parents])
或其.parants.add(parent)
工作时,但是当从管理站点添加任何父级时,此信号不起作用
我添加了signal.py
inready
函数apps.py
class myappConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'myapp'
def ready(self) -> None:
import myapp.signals
return super().ready()
然后添加myappConfig
到__init__.py
defult_app_config