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.

Confusión al importar vistas basadas en clases genéricas en Django.

Mientras exploraba la documentación de referencia y algunos tutoriales, he visto que la importación de las vistas basadas en clases genéricas de Django se realiza de varias formas:

from django.views.generic import TemplateView, ListView

O bien:

from django.views.generic.base import TemplateView
from django.views.generic.list import ListView

He probado a experimentar con ambas tácticas y ambas parecen funcionar, sin embargo, la primera opción parece menos correcta.

¿Todas las vistas basadas en clases genéricas también existen dentro del módulo genérico, así como en los submódulos? ¿Puede Python importar clases de submódulos simplemente importando un módulo superior? ¿Qué está sucediendo realmente aquí?

¡Cualquier ayuda sería muy apreciada!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, todas las vistas basadas en clases genéricas de Django existen dentro del módulo genérico, así como en sus submódulos, como generic.base y generic.list. En Python, puedes importar clases de submódulos solo importando el módulo superior. Cuando importas from django.views.generic import TemplateView, ListView, estás importando todas las clases dentro del módulo generic, incluyendo aquellas en los submódulos. Sin embargo, importar clases específicas de los submódulos, como en from django.views.generic.base import TemplateView o from django.views.generic.list import ListView, puede ser una práctica mejor para claridad y organización en proyectos más grandes. En última instancia, ambos métodos son válidos y funcionarán perfectamente.

Comments are closed.