J'ai besoin de mettre en œuvre des droits d'utilisateur pour les groupes d'utilisateurs (assez similaires aux groupes Facebook). Par exemple, chaque groupe peut avoir des membres avec des droits tels que: can_post, can_delete, can_ban, etc. Bien sûr, un utilisateur peut être membre de plusieurs groupes et un groupe peut avoir de nombreux utilisateurs différents avec des droits différents. De quels modèles ai-je besoin pour cette fonctionnalité?
Django a un système de groupes intégré. Chaque fois que vous avez une question comme celle-ci, je recommande recherche dans les documents Django , qui sont complets, utiles et bien écrits.
Tant que vous utilisez le Django.contrib.auth
app, vous avez accès aux groupes. Vous pouvez ensuite attribuer des autorisations à ces groupes.
from Django.contrib.auth.models import User, Group, Permission
from Django.contrib.contenttypes.models import ContentType
content_type = ContentType.objects.get(app_label='myapp', model='BlogPost')
permission = Permission.objects.create(codename='can_publish',
name='Can Publish Posts',
content_type=content_type)
user = User.objects.get(username='duke_nukem')
group = Group.objects.get(name='wizard')
group.permissions.add(permission)
user.groups.add(group)