He estado buscando las mejores prácticas, pero no las encontré. Incluso no pude encontrar la solución que necesito que alguien más la use.Crear automáticamente un nombre de usuario en el modelo de usuario en Django basado en otros campos
necesito generar nombre de usuario del usuario en base a sus otros datos (Nombre & apellido), añadiendo opcionalmente número entero en el extremo, hasta que llegue el nombre de usuario único.
Prefiero hacer eso en el modelo. ¿Hay alguna forma estándar de hacer eso? ¿O solo es apropiado en las formas? He estado investigando la sobrecarga de varios métodos del modelo User
, así como señales, y no encontré ningún lugar adecuado para agregarlo.
Estaba pensando en usar eso, pero me preocupa qué formas harán realmente con eso. Los formularios validan la entrada antes de realizar una llamada a 'save()', por lo que el campo se considerará no válido. Por cierto. 'obj.save()' también llamará a la señal 'pre_save', por lo que probablemente debería eliminar eso (o reemplazarlo por otra cosa que tengas en mente). – Tadeck
Su solución funciona, pero no siempre (si la validación se maneja antes de guardar, no tenemos suerte) y necesita ajustes (la eliminación de 'obj.save()' y 'get_unique_username' también debería funcionar si estamos actualizando el modelo existente) . En general, creo que no hay mejor manera de hacerlo, por lo que su respuesta es aceptable. Gracias. – Tadeck
@Tadeck vea la respuesta, ahora maneja su problema principal. – Ahsan