2011-01-14 21 views
17

Necesito aumentar el tamaño máximo de nombre de usuario en autenticación para superar los 30 caracteres definidos en el modelo. ¿Cómo se puede hacer? No estoy seguro de que solo la personalización del modelo sea la correcta o segura.Django auth: aumentar el nombre de usuario máximo longitud

+3

'username' consiguió aumentar en Django 1,10 a 150 caracteres. https://docs.djangoproject.com/en/1.10/releases/1.10/#abstractuseruser-username-max-length-increased-to-150. Si eso aún no es suficiente, te recomiendan "usar un modelo de usuario personalizado". –

Respuesta

11

Esta respuesta aquí es un enfoque interesante: Can django's auth_user.username be varchar(75)? How could that be done?

Una pequeña aplicación que anula el atributo max_length en el modelo de usuario, pero tenga en cuenta que su columna DB debe ser modificado si las tablas no están siendo syncdb ed

Personalmente utilizo un hash recortado como mi nombre de usuario que me avisaría si alguna vez hubo una colisión súper improbable, con el tema "¡Acabas de ganar la lotería!"

2

AFAIK, necesita la subclase auth.user si quiere exactamente eso. Una solución más simple y menos aventurera podría estar implementando un modelo de perfil de usuario con un campo más largo username. Para evitar la redundancia, puede, por ejemplo, llenar el campo real username con números generados aleatoriamente y dejar de usarlo.

+0

Guardar dos campos para un 'username' es completamente incorrecto. ¿Qué pasa con los nombres de usuario que son iguales en el primer 30 caracteres, pero difieren después de eso? –

Cuestiones relacionadas