Дублирование значений id в другом столбце в той же таблице django

Я работаю над одним проектом на python (django framework), в котором у меня есть одна модель пользователя, которая имеет 1000 пользователей. Я хочу сделать еще один столбец с именем priority id и нужно поместить значения id по умолчанию в этот столбец priority id соответственно (вы можете увидеть это ниже).

id username email priority_id
1 abc abc@gmail.com 1
2 xyz xyz@gmail.com 2

Конечно, я могу сделать это вручную с помощью панели администратора, но для 1000 пользователей это отнимает много времени.

как мне изменить models.py или admin.py или что-то еще, чтобы добиться этого?

def save(self, *args, **kwargs):
    self.priority_id = self.id
    return super().save(*args, **kwargs)

Я не знаю, зачем вам это нужно, но вы можете добиться этого, добавив BigAutoField в вашу модель пользователя. Это поле будет автоматически увеличивать значения для новых пользователей в соответствии с имеющимися идентификаторами.

В ваших моделях, где вы определяете пользователя, добавьте следующее поле.

priority_id = models.BigAutoField(null=False, unique=True)

ну, я попробовал это с помощью shell и это сработало:

p = Users.objects.all()
for x in p:
    profile = Users.objects.get(pk=x.id)
    profile.priority_id= x.id
    profile.save()

Вы можете использовать это для меня он работает нормально сначала вы должны создать со значением по умолчанию, а затем использовать эту функцию в представлениях и просто вызвать один раз он будет обновлять значение как в id.

    def update_value(request):
        totaldata = modelsName.objects.all()
        for j in totaldata:
            
            modelsName.objects.filter(id=j.id).update(myid=j.id)
            
    return HttpResponse('Success')
Вернуться на верх