【发布时间】:2016-09-28 11:25:10
【问题描述】:
我有点想看到类似的问题 (Django accessing ManyToMany fields from post_save signal),但仍然看不到如何获取更新的相关对象列表。
例如我有以下型号
class User(models.Model):
username = models.CharField
class Blog(models.Model):
user = models.ManyToManyField('User')
现在我通过 django admin 将用户添加到给定的博客。
所以我希望下面的信号将打印所有新用户(我刚刚添加)......但是......我一直得到旧列表:(
@receiver(m2m_changed, sender=Blog.users.through)
def blog_users_change(sender, instance, **kwargs):
print instance.users.all()
最后一行给出了旧的用户列表instance.users.all()。例如。此处添加的用户不会被反映。
【问题讨论】:
-
是原码吗?我的意思是,你的
sender是Blog.users.through而你的 m2m 是Blog.user而不是Blog.users