2010-08-08 11 views
13

Tengo un modelo class Project y para cada instancia del modelo, debe haber un "grupo" de usuarios que pueden editar esa instancia. Creo que podría agregar otra clase de modelo llamada ProjectEditor para agregar esos editores. ¿Hay una mejor manera de implementar esto? ¿Qué hay de verificar los permisos? Necesitaría escribir mi propio método de permiso también, ¿no?Django: permisos basados ​​en la instancia del modelo

Gracias Eric

Respuesta

3

permisos nivel (tabla) Modelo se puede lograr utilizando la instalación groups proporcionada por Django auth. Los grupos le permiten crear permisos personalizados en un nivel de modelo. instancia (fila) nivel sería más complicado. Lo más probable es que tenga que escribir un mecanismo personalizado para lograr esto.

Aquí hay un Django Snippet que podría darte algunas ideas.

2

Hubo una liberación de código abierto para los permisos de nivel de fila/objeto por parte del equipo de los tiempos de Washington que podrían ser de utilidad:

+0

Página relacionada de github es 404. –

+2

@DanAbramov: Pruebe http://code.osuosl.org/projects/object-permissions donde puede encontrar la versión 1.3.1 de marzo. – ars

+0

Cool. Muchas gracias. –

13

Django Guardian parece ser la mejor solución actual para el Modelo permisos de nivel de instancia.

Cuestiones relacionadas