Estoy creando accesorios para permisos en Django. Puedo cargarlos de la manera que se necesita. Sin embargo, mi pregunta es ... por ejemplo, quiero cargar un accesorio para la tabla auth_group_permissions
, necesito especificar un group_id
y un permission_id
, lamentablemente los accesorios no son la mejor manera de manejar esto. ¿Hay alguna manera más fácil de hacer esto programáticamente? ¿De modo que pueda obtener el id
para valores particulares y completarlos? ¿Cómo se hace esto normalmente?accesorios Django para permisos
Respuesta
La solución adecuada es crear los permisos de la misma manera que el marco.
Debe conectarse a la señal incorporada post_syncdb
ya sea en el módulo management.py
o management/__init__.py
y cree los permisos allí. La documentación dice que cualquier trabajo realizado en respuesta a la señal post_syncdb
no debe realizar ninguna modificación de la base de datos, pero también debe tener en cuenta que la propia estructura crea los permisos en respuesta a esta señal.
Así que le sugiero que eche un vistazo a la aplicación management module de la django.contrib.auth
para ver cómo se supone que debe hacerse.
Al menos Django> = 1.7, la respuesta aceptada ya no es la respuesta correcta debido a la introducción de "claves naturales" como una opción de serialización.
Puede leer más acerca de las claves naturales en el Django serialization documentation
La documentación menciona explícitamente el caso de uso de claves naturales siendo cuando ..
... objetos son creados automáticamente por Django en la base de datos proceso de sincronización, la clave principal de una relación dada no es fácil de predecir; dependerá de cómo y cuándo se ejecutó la migración. Esto es cierto para todos los modelos que generan objetos automáticamente, especialmente Permiso, Grupo y Usuario.
Así que para su pregunta específica, con respecto auth_group_permissions
, que le volcar su aparato utilizando la siguiente sintaxis:
python manage.py dumpdata auth --natural-foreign --natural-primary -e auth.Permission
La tabla auth_permissions debe ser excluido explícitamente con la bandera -e
como la tabla se llena por el comando migrate
y ya tendrá datos antes de cargar los accesorios.
Este dispositivo se cargará entonces de la misma manera que cualquier otro dispositivo
- 1. Migración de accesorios Django?
- 2. cargando accesorios para las pruebas de django
- 3. Django - Llaves foráneas en accesorios
- 4. Django permisos
- 5. Django - ¿permisos de usuario para ciertas vistas?
- 6. Django, las relaciones genéricas, hacer accesorios
- 7. ¿Cómo manejan los accesorios Django ManyToManyFields?
- 8. Accesorios Django que no aceptan YAML?
- 9. Django - Django reglas de comparación de permisos Django y utilizando
- 10. permisos de usuario Django Inlines + ver - Permisos emite
- 11. Cargando accesorios en la unidad de pruebas de Django
- 12. Django - sirviendo y administrando permisos para contenido estático
- 13. Django Grupos y Permisos. ¿Extendiendo grupos para tener un FK?
- 14. django admin - permisos de grupo para editar o ver modelos
- 15. ¿Cuándo crear programáticamente permisos personalizados de Django?
- 16. Adición de permisos por objeto django administrador
- 17. permisos de nivel de objeto django
- 18. Accesorios temporales Doctrine2 para probar con phpunit
- 19. Detección de accesorios para iPhone/iPod Touch
- 20. Consultar TFS para permisos
- 21. Permisos alternativos para StartInfo
- 22. Accesorios relacionales en Yii
- 23. Accesorios en RSpec
- 24. Accesorios Doctrine - referencias circulares
- 25. Accesorios HAML con jazmín
- 26. Django: permisos basados en la instancia del modelo
- 27. Administrador de Django - cambiar la lista de permisos
- 28. ¿Cómo uso los grupos y permisos de Django?
- 29. La adición de nuevos permisos personalizados en Django
- 30. Permisos de nivel de objeto Django 1.2: ¿soluciones de terceros?