Когда я запускаю migrate, поле uuid обновляется всегда, это дает мне некоторые проблемы с производительностью, может ли кто-нибудь объяснить мне причину и решение?

class Customer(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE,blank=True,null=True)
    activate_token = models.CharField(max_length=200,default=str(uuid.uuid4()))
    forget_password_token = models.CharField(max_length=200,default=str(uuid.uuid4()))
    first_name = models.CharField(max_length=100,blank=True,null=True)
    last_name = models.CharField(max_length=100,blank=True,null=True)
    status = models.CharField(max_length=100,blank=True,null=True)
    email = models.CharField(max_length=100,blank=True,null=True)
    gender = models.CharField(max_length=50,blank=True,null=True)
    city = models.CharField(max_length=100,blank=True,null=True)
    country = models.CharField(max_length=100,blank=True,null=True)    


Accounts\migrations\0010_alter_customer_activate_token_and_more.py
        - Alter field activate_token on customer
        - Alter field forget_password_token on customer
    Migrations for 'Store':
      Store\migrations\0004_product_shipping_charges_alter_product_price.py
        - Add field shipping_charges to product
        - Alter field price on product

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

Просто замените вызов функции uuid4 на callable (то есть без скобок), и Django поймет, что uuid должен оставаться постоянным.

forget_password_token = models.CharField(max_length=200,default=str(uuid.uuid4))
Вернуться на верх