0

私は役割ベースの許可を与えるためにdjango-guardianを使用し、ユーザープロファイリングのためにdjango-userenaを使用しています。管理者、サブ管理者、従業員の3種類のユーザーがいます。管理者はサブ管理者を追加でき、サブ管理者は従業員を追加できます。3つのユーザータイプの保護者に3つのグループを作成しました。ユーザーがサインアップするときに、そのユーザーに従業員グループを割り当てます。

class Profile(UserenaBaseProfile):
    class Meta:
    permissions = ( 
                ( "add_admin", "Can add admin" ),
                ( "add_subadmin", "Can add sub admin" ),
                ( "add_employee", "Can add employee" ),
            )
    user = models.OneToOneField(User,
                            unique=True,
                            verbose_name='user',
                            related_name='profile')
    first_name = models.CharField('First name',max_length=100,blank=False,null=False)
    def save(self, *args, **kwargs):
        super(Profile, self).save(*args, **kwargs)
        employee_group = Group.objects.get('employee')
        self.groups.add(employee_group)

Django管理者を使用して、管理者と副管理者にユーザーのグループを変更する機能を提供したいと思います。

AdminModelを使用して管理パネルにドロップダウンボタンまたはラジオボタンを追加して、ユーザーのグループを変更するにはどうすればよいですか。または、それを行うためのより良いアプローチはありますか?

4

1 に答える 1

1

管理者アクションを探しています。いくつかのカスタム管理者アクションを作成する必要があります。

アップデート

adminを作成するときに、currentrequest.userがそのアクションを表示できるかどうかを確認できます。ユーザーが管理者でない場合は、カスタムアクションメソッドが返さNoneれるか、または単にpass。コード内のどこかに現在のユーザーを取得するためのアプリがあります。現在のユーザーリクエストにアクセスできない場合は、と呼ばれdjango-cuserます。カスタムアクションを利用できるようにするために、使用が管理者か副管理者かを判断する必要がある場合に適しています。

アクションを条件付きで有効または無効にすることから開始します

于 2013-03-27T08:38:27.197 に答える