/ / Django Admin. Nouvel utilisateur. Autorisations personnalisées - django, django-admin, django-users

Django Admin. Nouvel utilisateur. Autorisations personnalisées - django, django-admin, django-users

J'ai besoin de créer un modèle personnalisé pour la page "nouvel utilisateur" dans django admin (qui est / admin / auth / user / add / par défaut).

Je veux seulement ajouter des cases à cocher, qui représentent des autorisations personnalisées pour l'utilisateur.

Par exemple, si l'administrateur sélectionne certains d'entre eux lors de la création d'un nouvel utilisateur, ce dernier aura ces autorisations. Si aucun d'entre eux n'est sélectionné, aucune autorisation n'est attribuée au nouvel utilisateur.

Comment puis-je obtenir cette fonctionnalité?

Remarque: je n'ai pas besoin de changer de modèle d'utilisateur par défaut.

Réponses:

1 pour la réponse № 1

Il suffit de changer le formulaire de création d’utilisateur pour l’administrateur et d’y travailler:

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)