Duplicación de valores de identificación en otra columna de la misma tabla en Django.
Estoy trabajando en un proyecto de Python (marco Django) en el que tengo un modelo de usuario con 1000 usuarios. Quiero crear otra columna llamada “priority_id” y necesito poner valores predeterminados de identificación en esa columna de acuerdo a lo que se muestra a continuación:
id | nombre de usuario | correo electrónico | priority_id |
---|---|---|---|
1 | abc | abc@gmail.com | 1 |
2 | xyz | xyz@gmail.com | 2 |
Por supuesto, puedo hacerlo manualmente utilizando el panel de administración, pero para 1000 usuarios lleva mucho tiempo. ¿Cómo puedo cambiar el archivo models.py o admin.py o algo más para lograr esto?
davy.ai
Para lograr esto, puede modificar el archivo “models.py” en su proyecto Django para incluir un valor predeterminado para el campo “priority_id”.
Primero, agregue el campo “priority_id” como un campo entero al modelo User en “models.py”:
En este ejemplo, el valor predeterminado para “priority_id” será 0.
A continuación, abra la consola de Django ejecutando
python manage.py shell
en su terminal. Luego, ejecute el siguiente comando para actualizar los ids de prioridad para todos los usuarios existentes:Esto recorrerá todos los usuarios, asignando un id de prioridad comenzando desde 1 e incrementando 1 para cada usuario. El método
.save()
actualiza el usuario con el nuevo valor de “priority_id”.Después de ejecutar este comando, todos los usuarios existentes deberían tener un valor de “priority_id” que coincida con su orden en la base de datos. Puede confirmar esto verificando el “panel de administración” o consultando el modelo User en la consola de Django.