Mi aplicación Django actualmente tiene URL que están protegidas por las funciones 'permission_required()'.¿Encuentra los permisos necesarios de las URL de Django sin llamarlas?
Esta función se llama de tres maneras diferentes.
- Como decorador en views.py, con parámetros codificados.
- Como una función simple, con parámetro autogenerado, en vistas genéricas basadas en clases personalizadas.
- Como una función que invoca vistas en urls.py, con parámetros codificados.
Ahora estoy agregando un sistema de menú a la aplicación, y tengo que hacer que las entradas del menú reflejen si el usuario tiene permiso para solicitar la URL de cada entrada del menú. (Ya sea atenuándolo u ocultando dichas entradas.)
¿Hay alguna forma de consultar los permisos necesarios para una URL sin solicitando la URL?
La única solución que he pensado hasta ahora es reemplazar el decorador con un decorador sin parámetros 'menu_permssion_required()' y codificar todos los permisos en una estructura de Python. Esto parece un paso atrás, ya que mis vistas genéricas basadas en clases personalizadas ya generan automáticamente los permisos necesarios.
¿Alguna sugerencia sobre cómo hacer un sistema de menú que refleje los permisos de URL para el usuario actual?
Siempre código de menús en plantillas, es simple y permite menús contextuales con {% extends%}. – jpic
disculpas @jplc, no puedo entender cómo se relaciona su comentario con la pregunta. Esto es específicamente sobre permisos. Los permisos son transversales, no están vinculados al prefijo URL o similar. – fadedbee
Puede verificar los permisos en la plantilla: https://gist.github.com/25c03f286337c66cc860 Esto es bastante estándar en los proyectos django de lo que he visto, aquí están los documentos sobre el módulo django perms en cuestión: https: // docs.djangoproject.com/en/1.0/topics/auth/#id6 Aún así, mi punto es que el tiempo dedicado a hacer un "sistema" para un menú HTML podría ser mejor gastado en otras cosas. – jpic