Cómo implementar múltiples autenticaciones en Django

Django solo es compatible con un modelo de autenticación único, que se mantiene en la configuración.AUTH_USER_MODEL.

El enfoque correcto aquí es definir un modelo AUTH base que herede de django.auth.contrib.AbstractBaseUser; podrías llamar a este modelo Persona.

El Estudiante y el Profesor heredarían de Persona, dando a ambas entidades la capacidad de autenticarse.

Otro enfoque que vale la pena considerar es un enfoque basado en roles. En este escenario, tendría un modelo de persona (utilizado para la autenticación) al que se le asigna un rol, ya sea estudiante o profesor en su ejemplo.

Los nombres Estudiante y Profesor indican que su objetivo es tener diferentes niveles o autorizaciones, no autenticación.

Espero que ayude. Siéntase libre de hacer más preguntas si no me han autorizado. Golpeé esta respuesta rápidamente en mi teléfono.

¿Por qué deberían ser diferentes? Creo que deberían tener diferentes roles y permisos, pero dudo que los datos en sus perfiles difieran tanto. Utilice mejor una autenticación estándar pero con una vista personalizada, por lo que una vez que el usuario haya iniciado sesión en función de su tipo, puede enviarlo a la página correcta y simplemente verificar los permisos en cada vista donde sea necesario.