那是我的模特
class Permissions(models.Model):
group = models.ForeignKey(Group)
Book = models.ForeignKey(Book)
users = models.ManyToManyField(User)
我实现了一个自定义保存方法来设置权限并将用户保存到一个组:
def save(self,*args,**kwargs):
super(Permissions,self).save(*args,**kwargs)
assign_perm('view_Book',self.group, self.book)
for gen in self.book.books.all():
assign_perm('view_Genre', self.group, gen)
for u in self.users.all():
u.groups.add(self.group)
u.save()
有了这个,我可以设置权限,但用户不能添加到组中。我错过了什么吗?
当我print(users)
时,返回为None或[]。
任何人都可以帮助我吗?
答案 0 :(得分:1)
我遇到了类似的问题并使用m2m_signal修复了。
这是一个例子:
def add_users_book_permissions(sender, **kwargs):
permissions = kwargs['instance']
for u in permissions.users.all():
u.groups.add(permission.group)
u.save()
m2m_changed.connect(add_users_book_permission,Permissions.users.through)
答案 1 :(得分:0)
您的permission
对象刚刚创建,因此没有用户。这就是为什么你得到一个空列表。
您可能希望使用:User.objects.all()
来获取所有用户,无论其权限如何。