- 次のグループと異なるfacilities
用アプリIセットアップ権限:管理者は、ユーザーがいくつかのより多く持っているし、すべての権限を持っているジャンゴ - リレーショナル制約(ユーザーのグループに対する制約)私のジャンゴで
ADMIN_<facility>
USER_<facility>
。
グループADMIN_facility1
を持つユーザーは、グループUSER_facility1
に決して追加されないようにしたいと思います。私のアプローチ:
class MyUser(models.Model):
...
@property
def admin_facilities(self):
[g.name for g in self.groups.filter(name__startswith="ADMIN_")]
@property
def user_facilities(self):
[g.name for g in self.groups.filter(name__startswith="USER_")]
def save(self, **kwargs):
for user_fac in self.user_facilities:
if user_fac in self.admin_facilities:
# remove the user facility
self.groups.remove(
self.groups.get(name="USER_{}".format(user_fac)
)
super(MyUser, self).save(**kwargs)
...
このアプローチは、保存機能の呼び出し中にグループがまだ存在しないため、機能しません。
質問:は、どのように私はADMIN_<facility>
グループにあるユーザーは応じUSER_<facility>
グループに追加することはできませんという制約のですか?保存されたばかりの
def save(self, **kwargs):
super(MyUser, self).save(**kwargs)
for user_fac in self.user_facilities:
if user_fac in self.admin_facilities:
# remove the user facility
self.groups.remove(
self.groups.get(name="USER_{}".format(user_fac)
)