Estoy trabajando en un proyecto en django que requiere tener grupos de usuarios separados en su propio espacio de nombres username
.Django - Permitir nombres de usuario duplicados
Así que, por ejemplo, podría tener varias "organizaciones" y username
solo debería ser único dentro de esa organización.
Sé que puedo hacer esto mediante el uso de otro modelo que contiene un identificador de nombre de usuario/organización, pero que aún deja este inútil (y necesario) en el campo de autenticación defualt Django User
que tendría que llenar con algo.
Ya he escrito por propio auth backend que autentica a un usuario contra LDAP. Sin embargo, como mencioné antes, todavía estoy atascado con el problema de cómo poblar/ignorar el campo username
en el usuario django predeterminado.
¿Hay alguna manera de eliminar la restricción de exclusividad para username
para usuarios de autenticación de Django?
No estoy seguro de que vaya a funcionar. El atributo 'unique' se propaga a la base de datos como una restricción en ese campo. Una vez hecho esto, ajustar la meta-información de Django no va a ayudar. Si nunca va a * usar * (es decir, mostrar/modificar) el nombre de usuario, todo lo que sea único lo hará suficiente. P.ej. lo que sugiere DrBloodmoney –
Esto * does * work (lo intenté), pero como está accediendo a '_meta', se basa en la implementación interna y no en la interfaz documentada, por lo que tengo cuidado de usarlo. +1 sin embargo, funciona. –
Bueno, funciona con restricciones NOT NULL (lo he intentado), así que no veo por qué no. Siempre que "MyUserModel" sea una clase que herede de "auth.User" y la línea se coloque inmediatamente después del modelo, esto parece funcionar. Es solo que es un truco un poco feo. –