django: establecer permisos de usuario cuando el usuario se crea automáticamente

Django 1.5, python 2.6

El modelo crea automáticamente un usuario bajo ciertas condiciones:

User.objects.get_or_create(username=new_user_name, is_staff=True) u = User.objects.get(username=new_user_name) u.set_password('temporary') 

Además de configurar el nombre de usuario, la contraseña y el estado de is_staff, me gustaría configurar los permisos del usuario, algo como:

 u.user_permissions('Can view poll') 

o

 u.set_permissions('Can change poll') 

es posible? ¡Gracias!

Use los métodos de add y remove :

  from django.contrib.auth.models import Permission permission = Permission.objects.get(name='Can view poll') u.user_permissions.add(permission) 

Andrew M. Farrell responde que es correcto. Solo agrego el uso de get_user_model () y un ejemplo completo.

 from django.contrib.auth import get_user_model from django.contrib.auth.models import Permission u = get_user_model().get(username=new_user_name) 

Para obtener el permiso puede utilizar

 permission = Permission.objects.get(name='Can view poll') 

o

 permission = Permission.objects.get(codename='can_view_poll') 

Luego agrégalo al conjunto de permisos de usuario.

 u.user_permissions.add(permission)