/ / Django: no se puede iniciar sesión al crear subclases Modelo de usuario: django, django-models, django-contrib

Django: no se puede iniciar sesión cuando se subclasifica el modelo de usuario: django, django-models, django-contrib

Busqué una pregunta similar pero no encontré ninguna hasta ahora.

Tengo una subclase de Usuario (django.contrib.auth.models.User). Quiero que mi sitio admita tanto usuarios individuales como usuarios empresariales, por lo que en este caso es:

class BusinessUser(User):
website = models.CharField(max_length=20)
objects = UserManager()

Tengo un formulario de registro que guarda a un usuario como usuario y otro que guarda a mi usuario como usuario de negocios. El caso problemático es el BusinessUser:

He comprobado a través de la consola de Django que existe un objeto de Usuario y de Usuario de Negocio después del registro de un Usuario de Empresa, y todos los campos están bien (nombre de usuario, correo electrónico, contraseña).

Sin embargo, en mi página de inicio de sesión, no puedo iniciar sesión con mi BusinessUser. Puedo iniciar sesión bien con el Usuario normal registrado, pero no con BusinessUser.

¿Alguien sabe qué podría estar mal?

Gracias.

Respuestas

1 para la respuesta № 1

Has subclasificado User. No hagas eso nunca. Use perfiles para agregar datos adicionales, y sirealmente necesita dos modelos separados (por ejemplo, para tener dos vistas separadas para usuarios individuales y empresariales en el administrador) cree modelos proxy y administradores personalizados que filtren solo usuarios individuales o empresariales de User.


1 para la respuesta № 2

El backend de autenticación personalizado se debe usar cuando django "s User subclasificado

Puedes ver ejemplo aquí

No he probado esto, pero creo que esto funcionará.