es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo categorizar en la administración de Django?

He registrado mis modelos en admin.py como

admin.site.register(Food_Gallery)
admin.site.register(Gym)
admin.site.register(Gym_Gallery)
admin.site.register(Gym_Pricing_Plans)
admin.site.register(Gym_Programs)
admin.site.register(Trainer)
admin.site.register(Farm)
admin.site.register(Farm_Gallery)
admin.site.register(Farm_Products)

Esto muestra todos los modelos en una sola página en el administrador de Django.

Quiero categorizar estos modelos en ciertas categorías y mostrar sus respectivos modelos. ¿Cómo puedo gestionar esto?

Algunos ejemplos son

Comida
Gimnasio
Granja
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para categorizar los modelos y mostrarlos bajo sus respectivas categorías en el administrador de Django, podemos hacer uso de la clase ModelAdmin proporcionada por Django.

    Primero, podemos crear un archivo admin.py separado para cada categoría, como food_admin.py, gym_admin.py y farm_admin.py. En cada uno de estos archivos, podemos registrar los modelos relevantes según el siguiente ejemplo.

    # food_admin.py
    
    from django.contrib import admin
    from myapp.models import Food_Gallery
    
    class FoodGalleryAdmin(admin.ModelAdmin):
        list_display = ('name', 'description', 'created_at', 'updated_at')
    
    admin.site.register(Food_Gallery, FoodGalleryAdmin)
    

    A continuación, podemos crear nuestro propio sitio de administración personalizado y registrar todos estos archivos de administrador.

    # my_custom_admin.py
    
    from django.contrib.admin import AdminSite
    from myapp.admin import FoodGalleryAdmin, GymAdmin, FarmAdmin
    
    class MyCustomAdmin(AdminSite):
        site_title = 'Mi Administrador Personalizado'
        site_header = 'Mi Administrador Personalizado'
        index_title = 'Bienvenido a Mi Administrador Personalizado'
    
    admin_site = MyCustomAdmin(name='myadmin')
    admin_site.register(Food_Gallery, FoodGalleryAdmin)
    admin_site.register(Gym, GymAdmin)
    admin_site.register(Farm, FarmAdmin)
    

    Con esta configuración, podemos ir a la URL específica para visitar nuestra página de administración personalizada, donde podemos acceder a los modelos bajo sus respectivas categorías. Por ejemplo, http://localhost:8000/myadmin/food_gallery/` nos daría acceso al modeloFood_Gallery`.

    Es importante tener en cuenta que en el ejemplo anterior hemos creado nuestro propio sitio de administración personalizado. Esto no es necesario y podemos seguir utilizando el sitio de administración predeterminado de Django. La parte importante es crear los archivos admin.py separados para cada categoría y las clases ModelAdmin para personalizar su comportamiento.

Comments are closed.