Confundido por la afirmación de Django sobre MVC, ¿qué es exactamente?

Entonces, ¿qué es exactamente la implementación de Django?

Parece que hay

Models Views Templates 

Modelos = Asignaciones de base de datos

Vistas = Agarre datos relevantes de los modelos y los formatos a través de plantillas

Plantillas = Mostrar HTML dependiendo de los datos dados por Vistas

    EDIT: S. Lott aclaró mucho con esto en una edición de una publicación anterior, pero todavía me gustaría escuchar otros comentarios. ¡Gracias!

    ¿Es esto correcto? Realmente parece que Django no se parece en nada a MVC y simplemente confunde a la gente llamándolo así.

    Los desarrolladores de Django tienen una visión ligeramente no tradicional sobre el paradigma MVC. En realidad, abordan esta pregunta en sus preguntas frecuentes, que puede leer aquí . En sus propias palabras:

    En nuestra interpretación de MVC, la “vista” describe los datos que se presentan al usuario. No es necesariamente cómo se ven los datos, sino qué datos se presentan. La vista describe los datos que ve, no cómo los ve. Es una distinción sutil.

    Entonces, en nuestro caso, una “vista” es la función de callback de Python para una URL en particular, porque esa función de callback describe qué datos se presentan.

    Además, es sensato separar el contenido de la presentación, que es donde entran las plantillas. En Django, una “vista” describe qué datos se presentan, pero una vista normalmente delega a una plantilla, que describe cómo se presentan los datos.

    ¿Dónde encaja el “controlador”, entonces? En el caso de Django, probablemente sea el propio marco: la maquinaria que envía una solicitud a la vista correspondiente, de acuerdo con la configuración de URL de Django.