es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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”:

    class User(models.Model):
        username = models.CharField(max_length=30)
        email = models.EmailField()
        priority_id = models.IntegerField(default=0)
    

    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:

    from django.contrib.auth.models import User
    
    for i, user in enumerate(User.objects.all()):
        user.priority_id = i+1
        user.save()
    

    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.

Comments are closed.