Djangoのドキュメントでは、グループにユーザを追加すると、自動的にそのグループに与えられた権限が与えられます。だから、私のアプリケーションでは、私は管理インターフェイスを介して "admin"と呼ばれるグループを作成し、私はそれに必要な許可を与えた。今度は新しいユーザーを作成してそれをグループ「所有者」に追加すると、そのグループの権限はありません。djangoのユーザにgroupの権限を割り当てます
は、それから私は、Djangoのシェルでそれを試してみました、それがうまく走っ 本当にDjangoのユーザモデルで私のコードですuser_permissions
class UserAccount(AbstractUser):
def __str__(self): # __unicode__ for Python 2
return str(self.username)
def __unicode__(self):
return str(self.username)
def save(self, *args, **kwargs):
super(UserAccount, self).save(*args, **kwargs)
for group in set(self.groups.all()):
self.user_permissions = group.permissions.all()
別に割り当てられたグループの権限は
class UserAccount(AbstractUser):
def __str__(self): # __unicode__ for Python 2
return str(self.username)
def __unicode__(self):
return str(self.username)
def save(self, *args, **kwargs):
super(UserAccount, self).save(*args, **kwargs)
for group in set(self.groups.all()):
for perm in group.permissions.all():
self.user_permissions.add(perm)
をお試しください
管理パネルインターフェイスからユーザーを保存すると両方とも動作しませんが、両方ともdjangoシェルで正常に動作しています 0123をデバッグしようとしましたとコード実行が、
が割り当てられていない権限その後、私はグループ
from django.contrib.auth.models import Group as BaseGroup
class Group(BaseGroup):
class Meta:
proxy = True
def save(self):
super(Group, self).save()
for user in self.user_set.all():
user.user_permissions = self.permissions.all()
から逆の方法でアクセス権を追加しようと私がやったことは権利であるかどうか私にはわからない、それはなぜ権利である場合正しく動作しません。
更新:
ユーザーの権限も管理画面から保存されているため、ユーザは、グループのアクセス権を自動的
私はすでにユーザーにグループを与えており、グループにはアクセス許可があります –
本当にユーザーにはグループのアクセス許可があります。 'has_perm'メソッドをチェックしました –