0

我有一个模型

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.pyinready函数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

4

0 回答 0