Me encantaría tener permisos más granulares en mi proyecto Django, pero no puedo decidir qué aplicación usar. Lo que tengo es algo así como:Django permisos
class Item(models.Model):
name = models.CharField(max_length=64, unique=True)
description = models.CharField(max_length=128, default='')
logo = ImageField(upload_to=/tmp, blank=True, null=True)
Ahora con permisos estándar de Django tengo la posibilidad de elegir entre añadir, modificar y borrar, lo que quiere tener es un permiso de cambio prolongado, para ofrecer la capacidad de dar derechos grupales solo para cambiar el logotipo, por ejemplo, pero no permitir que ese mismo grupo modifique la descripción del artículo. No quiero o no necesito una relación de entrada de usuario, simplemente le doy la posibilidad a diferentes grupos de editar campos individuales de un modelo usando la interfaz de administración estándar. Ni siquiera estoy seguro de si estoy hablando de permiso por objeto.
¿Alguien sabe lo que es mejor usar o cómo lo implementaría yo mismo? También podría imaginar tener usuarios de solo lectura que puedan acceder/leer todo pero que no podrán modificar, esto tampoco es posible.
Gracias por cualquier ayuda.
No, estos no son permisos a nivel de objeto. Respuesta corta: podría ser factible, pero es un montón de código. Respuesta larga: no puedes hacer lo que estás describiendo en un administrador de vanjan django. Un enfoque sería conectar ModelAdmins por separado con los campos relevantes habilitados para separar las instancias de AdminSite. Creo que es probable que tenga que subclasificar a AdminSite para compararlo con sus grupos y codificar los permisos que tiene cada grupo: los permisos incorporados de django no tienen un concepto de campos permitidos/no permitidos. – AdamKG
Muchas gracias por la respuesta esperada y la confirmación.Esperaré implementar diferentes subclases de AdminSite para lograr mi tarea. – tinti