Django Vérifier et définir des autorisations pour un groupe d'utilisateurs

J'ai un groupe d'utilisateurs appelé baseusers avec un ensemble d'autorisations, j'ai ajouté par admin. Si baseusers n'existe pas, je veux le créer et de définir les mêmes permissions qu'il a maintenant. Je peux créer le groupe, mais comment puis-je obtenir les autorisations de la coquille, puis les ajouter dans mon code? Par exemple, deux des autorisations sont nommés can_fm_list et can_fm_add. L'Application est appelée fileman. Mais dois-je utiliser id:s à la place? Voici le code, je voudrais que les autorisations à définir.

userprofile/views.py

from fileman.models import Setting (Has the permissions)
from fileman.models import Newuserpath
from django.contrib.auth.models import Group

def register(request):

...

            if Group.objects.count() > 0:
            newuser.groups.add(1)
            else:
            newgroup = Group(name='baseusers')
            newgroup.save()
            newuser.groups.add(1)

fileman/models.py

class Setting(models.Model):
    owner = AutoForeignKey(User, unique=True, related_name='fileman_Setting')
    root = models.CharField(max_length=250, null=True)
    home = models.CharField(max_length=250, null=True)
    buffer = models.TextField(blank=True)
    class Meta:
        permissions = (
            ("can_fm_list", _("Can look files list")),
            ("can_fm_add", _("Can upload files")),
            ("can_fm_rename", _("Can rename files")),
            ("can_fm_del", _("Can move files to basket")),
            ("can_fm_destruct", _("Can delete files")),
        )
    def __unicode__(self):
        return unicode(self.owner)
    def __init__(self, *args, **kwargs):
        super(Setting, self).__init__(*args, **kwargs)
        if not self.root:
            self.root = None
            self.home = None
    def writeBuffer(self, data):
        self.buffer = data
        self.save()
  • J'ai essayé mygroup = Groupe.objets.get(nom='baseusers') et puis mygroup.les autorisations.ajouter(can_fm_list) mais je reçois un 'can_fm_list" n'est pas défini. J'ai trouvé l'id:s en fait un mygroup.les autorisations.values_list('id',plat=True). Je peux ajouter par id mais je n'aime pas vraiment d'ajouter les autorisations par id:s car ils se trompent s'ils changent pour une raison quelconque, mais ne peut pas comprendre l'autre sens.
InformationsquelleAutor leffe | 2011-04-28