小编use*_*424的帖子

Django信号m2m_changed未触发

我最近开始在我的Django项目中使用信号(v.1.3)并且它们都工作正常,除了我无法弄清楚为什么m2m_changed信号永远不会在我的模型上被触发.通过在django管理表单上添加/删除PageChild内联实例来编辑Section实例.

我试图按照文档中的描述注册回调函数,但是没有得到任何结果.

摘自我的models.py

from django.db import models
from django.db.models.signals import m2m_changed


class Section(models.Model):
    name = models.CharField(unique = True, max_length = 100)
    pages = models.ManyToManyField(Page, through = 'PageChild')

class PageChild(models.Model):
    section = models.ForeignKey(Section)
    page = models.ForeignKey(Page, limit_choices_to = Q(is_template = False, is_background = False))


@receiver(m2m_changed, sender = Section.pages.through)
def m2m(sender, **kwargs):
    print "m2m changed!"

m2m_changed.connect(m2m, sender = Section.pages.through, dispatch_uid = 'foo', weak = False)
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗

django signals django-admin m2m

12
推荐指数
2
解决办法
6329
查看次数

标签 统计

django ×1

django-admin ×1

m2m ×1

signals ×1