Estoy intentando configurar algunos permisos personalizados para una aplicación Django, pero parece que no funciona. La documentación oficial es un poco escasa, y no menciona (al menos eso puedo encontrar) cómo realmente establecer un permiso? Sobre la base de algunos tutoriales de 3 ª parte que he encontrado, he ampliado la clase de usuario y parece que funciona bien:No se pueden establecer permisos personalizados en Django
from django.db import models
from django.contrib.auth.models import User,UserManager
class CustomUser(User):
custom_field = models.CharField(max_length=250)
objects = UserManager()
class Meta:
permissions = (
('is_custom','Has a Custom Permission'),
)
Cuando intento configurar un permiso sin embargo, no funciona:
>>> from project.custauth.models import CustomUser
>>> from django.contrib.auth.models import User, Permission
>>> user = CustomUser.objects.get(username='new.user')
>>> user
<CustomUser: new.user>
>>> custom_permission = Permission.objects.get(codename="is_custom")
>>> custom_permission
<Permission: custauth | custom user | Has a Custom Permission>
>>> custom_permission.save()
>>> user.user_permissions.add(custom_permission)
>>> user.save()
>>> user.has_perm(custom_permission)
False
>>> user.get_all_permissions()
set([])
¿Alguna idea sobre lo que estoy haciendo mal? Estoy usando Django 1.2.1 con Python 2.4.3. Todas las entradas apreciadas ...
En caso de que alguien venga a buscar la solución, encontré esto útil: http://stackoverflow.com/questions/10102918/cant-change-user-permissions-during-unittest-in-django – sid