Django Admin。新用户。自定义权限

时间:2013-12-05 04:55:54

标签: django django-admin django-users

我需要在django admin中创建“新用户”页面的自定义模板(默认情况下为/ admin / auth / user / add /)。

我只想添加一些复选框,代表用户的自定义权限。

例如,如果管理员在创建新用户期间选择其中一些,则新用户将拥有这些权限。如果未选择任何一个,则不会为新用户分配任何权限。

如何实现此功能?

注意:我不需要更改默认用户模型。

1 个答案:

答案 0 :(得分:1)

只需更改管理员的用户创建表单,然后在那里工作:

from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserChangeForm

class CustomUserChangeForm(UserChangeForm):
    def save(self, force_insert=False, force_update=False, commit=True):
        m = super(CustomUserChangeForm, self).save(commit=False)
        # do custom stuff
        if commit:
            m.save()
        return m

class CustomUserAdmin(UserAdmin):
    form = CustomUserChangeForm

admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)