Escribo cosas de administración personalizada y necesito obtener todos los modelos registrados en Admin. es posible? Lo necesito para hacer algunas vistas personalizadas en la página de índice de administración.administrador de Django: ¿cómo obtener todos los modelos registrados en templatetag?
9
A
Respuesta
14
Puede acceder admin.site._registry
dict de Modelo-> ModelAdmin:
>>> ./manage.py shell
In [1]: from urls import * # load admin
In [2]: from django.contrib import admin
In [3]: admin.site._registry
Out[3]:
{django.contrib.auth.models.Group: <django.contrib.auth.admin.GroupAdmin at 0x22629d0>,
django.contrib.auth.models.User: <django.contrib.auth.admin.UserAdmin at 0x2262a10>,
django.contrib.sites.models.Site: <django.contrib.sites.admin.SiteAdmin at 0x2262c90>,
testapp.models.Up: <django.contrib.admin.options.ModelAdmin at 0x2269c10>,
nashvegas.models.Migration: <nashvegas.admin.MigrationAdmin at 0x2262ad0>}
Esto es lo que la vista del índice administrador hace:
@never_cache
def index(self, request, extra_context=None):
"""
Displays the main admin index page, which lists all of the installed
apps that have been registered in this site.
"""
app_dict = {}
user = request.user
for model, model_admin in self._registry.items():
# ...
Tenga en cuenta que las variables prefijadas con un guión son potencialmente sujetos a cambios en versiones futuras de django.
Cuestiones relacionadas
- 1. Los modelos registrados no se muestran en el administrador
- 2. Django templatetag "orden de procesamiento"
- 3. Django Queryset en todos los modelos?
- 4. Modelos Django: pase información adicional al administrador
- 5. administrador de Django, ocultar un modelo
- 6. ¿Cómo funcionan los modelos Django?
- 7. ¿Cómo enumerar todos los enlaces registrados en Ninject?
- 8. ¿Cómo puedo enumerar todos los ensamblados registrados en GAC?
- 9. Django: ¿Cambiar modelos sin borrar todos los datos?
- 10. modelos Django | obtener columnas específicas
- 11. obtener una lista de todos los modelos de rieles
- 12. Django: Cómo obtener el usuario actual en formularios de administrador
- 13. Obtener todos los puntos dentro de cierto radio en Django
- 14. cómo obtener los datos de usuario actualmente registrados zend framework
- 15. Transmitir una notificación a todos los dispositivos registrados
- 16. ¿Cómo eliminar modelos de django?
- 17. Prueba de Autoacc todos los tipos registrados pueden resolverse
- 18. ¿Cómo eliminar un registro en los modelos de Django?
- 19. Django: Representación de cadena de los modelos
- 20. ¿Cómo obtener una Django QuerySet de todos ForeignKeys de todos los objetos en un conjunto de consultas
- 21. Django modelos, funciones personalizadas
- 22. Django: especifique qué gestor de modelos debe usar el administrador de Django
- 23. Django. Obtener valores para todos los campos de un objeto
- 24. ¿Cómo separe mis modelos en django?
- 25. Cómo subir archivos múltiples en los modelos django admin
- 26. SQLAlchemy "event.listen" para todos los modelos
- 27. Django - Cómo llenar previamente los campos de formulario de administrador
- 28. Administrador de Django Selecciones desplegables
- 29. modelos django seleccionando campo único
- 30. Anulación queryset defecto en Django administrador
¿Sabes si hay algún método para obtener la aplicación real en la que el usuario está en administración? Si es dahsboard, no devuelve ninguna aplicación, pero para otros devuelve todas las etiquetas u objetos. Quiero usarlo como templatetag en mi menú global de administración. – tunarob
No entiendo, ¿puedes abrir otra pregunta y dar más detalles? – jpic