Devo implementare i diritti utente per i gruppi di utenti (molto simile ai gruppi di Facebook). Ad esempio, ciascun gruppo può avere membri con diritti come: can_post, can_delete, can_ban, ecc. Naturalmente, un utente può essere membro di molti gruppi e il gruppo può avere molti utenti diversi con diritti diversi. Quali modelli ho bisogno per questa funzionalità?Gruppi di utenti e permessi
29
A
risposta
59
Django ha un sistema integrato di gruppi. Ogni volta che hai una domanda del genere, ti consiglio di utilizzare lo searching the Django docs, che è esauriente, utile e ben scritto.
Fintanto che si utilizza l'app django.contrib.auth
, è possibile accedere ai gruppi. È quindi possibile assegnare autorizzazioni a tali gruppi.
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)
in quale file di solito si inserisce questo pezzo di codice? –
Il codice sopra crea record, quindi è il tipo di cosa che si esegue dalla shell. Se si desidera distribuire l'app o distribuirla, è necessario configurarla in modo che i dati iniziali siano stati salvati. Credo che tu possa modificarli anche all'interno dell'amministratore sul sito web. –
stessa cosa che ho fatto con la mia, l'ho fatto su shell o admin e poi ho generato una fixture da caricare su istanze future dell'applicazione. Grazie per la risposta –