過去 3 日間、Google と Stackoverflow を検索してきましたが、似たようなものは見つかりませんでした。django のグループと権限を拡張または使用したいと考えています。
チームとユーザーが異なるいくつかのプロジェクトがあるとします。
class Project(models.Model):
owner = models.ForeignKey(User)
name = models.CharField(max_length=100)
class Team(models.Model):
project = models.ForeignKey(Project)
members = models.ManyToManyField(User)
name = models.CharField(max_length=100)
permission = models.ManyToManyField(Permission)
今 - すべてが順調です。今私が欲しいのは、django によって配信された既存の Auth.Group を拡張してrequest.user.has_perm...
、直接的な方法を使用できるようにすることです。
それでは、 Team-Modelを次のように変更しましょう
class Team(Group):
project = models.ForeignKey(Project)
members = models.ManyToManyField(User)
これにより、既存のグループが拡張されます。name
andフィールドはGroup-Modelpermissions
から直接取得されます。新しいTeamを作成すると、Groupも追加されます。それは素晴らしいことです。
追加できるカスタムsave
メソッドを使用すると、 にuser
リストされmembers
ている が作成されたグループに追加され、Team/Groupに付与された権限が取得されます。
今私の問題は、グループname
のフィールドが一意であるため、各プロジェクトに管理者チームを追加できなかったことです。
フロントエンドに別の名前フィールドを追加して、 Group-Modelの名前フィールドに一意の文字列を生成することを考えました。しかし、うーん....複数のカスタム グループのためのより良い解決策はありますか? ひょっとして何か思いついた?前もって感謝します!