Как добавить поле 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 для работы с объектом профиля.
Все остальное, что вы хотите добавить к своим пользователям, помещается в объект их профиля.