class Permission(models.Model):
is_default = models.BooleanField('是否默认')
group = models.ForeignKey('Group')
class Post(models.Model):
group = models.ForeignKey('Group')
permissions = models.ManyToManyField('Permission')
title = models.CharField('Title', max_length=32)
希望在 Post 创建时,根据 group 设置默认的 permissions,但是尝试使用 signal 的方式设置保存后并未生效。
@receiver(post_save, sender=Post)
def set_default_permissions(sender, instance, created, *args, **kwargs):
if instance.group is not None and created:
defaults = Permission.objects.filter(is_default=True, group=instance.group).all()
instance.product.add(*defaults)
instance.save()
请教一下,应该如何在创建 Post 时设置 permissions 才是最好的呢?