在多个到多个字段保存在数据库中后调用post_save

时间:2018-01-01 09:31:06

标签: django django-models django-signals

我有模特

class UserPermission(models.Model):
    user = models.OneToOneField(User)
    user_type = models.ManyToManyField(UserType)
    persona = models.ManyToManyField(Persona)

并发布保存信号

@receiver(post_save, sender=UserPermission)
def post_save_user_permissions(sender, instance, **kwargs)
    """
    Depending on selected UserType and Persona for a user, Update some other model
    """
    pass

我想要保存信号中的m2m字段的所有更新值。但是这里的问题是在m2m字段保存到db之前调用保存信号。

我本可以使用m2m_changed信号,但有两个m2m字段,我无法关联或链接这两个信号

一旦模型中的所有m2m字段都保存到db中,就可以调用post_save。

1 个答案:

答案 0 :(得分:0)

两种可能性:

  • UserType
  • 上尝试post_save
  • 尝试使用through命名中间表,例如through='UserPermissionType'并在UserPermissionType上尝试post_save

我希望我能给你足够的线索来找到解决方案。