¿Hay algún problema con ejecutar alter table en auth_user
para hacer que username
sea varchar(75)
para que quepa en un correo electrónico? ¿Qué rompe eso si algo?¿Puede auth_user.username de django ser varchar (75)? ¿Cómo podría hacerse eso?
Si tuviera que cambiar auth_user.username
para ser varchar(75)
¿dónde tendría que modificar django? ¿Es simplemente una cuestión de cambiar de 30 a 75 en el código fuente?
username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters"))
¿O hay alguna otra validación en este campo que deba cambiarse o alguna otra repercusión para hacerlo?
Vea la discusión del comentario con bartek a continuación sobre la razón para hacerlo.
Editar: Mirando hacia atrás en esto después de muchos meses. Para cualquier persona que no conozca la premisa: algunas aplicaciones no tienen un requisito o deseo de usar un nombre de usuario, solo usan el correo electrónico para el registro & auth. Desafortunadamente en django auth.contrib, se requiere nombre de usuario. Podría comenzar a colocar correos electrónicos en el campo de nombre de usuario, pero el campo tiene solo 30 caracteres y los correos electrónicos pueden ser largos en el mundo real. Potencialmente incluso más largo que el 75 char sugerido aquí, pero 75 char acomoda la mayoría de las direcciones de correo electrónico. La pregunta está dirigida a esta situación, como lo hacen las aplicaciones basadas en autenticación de correo electrónico.
antes de la edición no era una pregunta por una larga queja sobre 'auth.contrib'. Lo editaste para que fuera más civil, pero SO afirma que "el voto es demasiado viejo para cambiar". –
Lo edité para ser más conciso, me molesta su implicación de que era menos civil (?). Estaba explicando la lógica para preguntar sobre auth_user.username = varchar (75). Es una situación en la que veo a muchas otras personas, por lo que vale la pena explicarlo. Pero no si hace que la gente no se tome el tiempo para responder a la pregunta. – Purrell
Nota para la posteridad: Django 1.5 tiene algunas características que resuelven estos problemas de forma más elegante. Ver http://procrastinatingdev.com/django/using-configurable-user-models-in-django-1-5/ –