Как добавить поле uuid в модель существующего пользователя в django?

Мне очень нужна ваша помощь, я искал везде, но ничего не могу найти?

Пожалуйста, прежде чем задать вопрос, ознакомьтесь с этим разделом: Как задать вопрос

Если вы хотите добавить поле UUID в модель, вам необходимо импортировать следующее:

import uuid

Затем в модели необходимо создать новое поле:

unique_uuid = models.CharField(max_length=1024, null=True, blank=True)

Наконец, необходимо обновить метод сохранения модели по умолчанию:

def save(self, trigger=True, *args, **kwargs):
    if not self.unique_uuid:
        self.unique_uuid = uuid.uuid4()

    super(ModelName, self).save(*args, **kwargs)

Это одна из тех вещей, когда лучше не начинать отсюда, если вы хотите попасть туда. В документации по Django посмотрите Здесь

Если у вас уже есть объекты Django по умолчанию user, то вам нужно расширить их с помощью отношения OneToOne до объекта вашего собственного определения (его часто называют профилем). Таким образом, добавьте

class Profile( models.Model)
    user = models.OneToOneField( User, on_delete=models.CASCADE, )                          
    uuid = models.UUIDField( default=uuid.uuid4, editable=False)

makemigrations и migrate, после чего вы сможете ссылаться на user.profile.uuid. По умолчанию это вызываемый параметр, поэтому миграция вызовет его для присвоения уникального UUID всем существующим пользователям (я думаю).

В документе, на который я дал ссылку, объясняется, как изменить админку Django для работы с объектом профиля.

Все остальное, что вы хотите добавить к своим пользователям, помещается в объект их профиля.

Вернуться на верх