Django 在模型对象保存时刷新UUID

Django 在模型对象保存时刷新UUID,django,django-models,uuid,Django,Django Models,Uuid,所以我有一个模型,我使用一个UUID字段。我只想在每次保存模型对象时将UUID(刷新UUID)更改为新的UUID import uuid from django.db import models class MyUUIDModel(models.Model): id = models.UUIDField(default=uuid.uuid4, unique=True) # other fields def save(self, *args, **kwargs)

所以我有一个模型,我使用一个UUID字段。我只想在每次保存模型对象时将UUID(刷新UUID)更改为新的UUID

import uuid
from django.db import models

class MyUUIDModel(models.Model):
    id = models.UUIDField(default=uuid.uuid4, unique=True)
    # other fields
    
    def save(self, *args, **kwargs):
        //refresh the uuid. what do i do here?
        super(MyUUIDModel, self).save(*args, **kwargs)


您必须调用uuid.uuid4(),否则您将试图将函数本身作为字段的值传递给模型。但您可以在每次保存实例时生成一个新的UUID,如下所示:

class MyUUIDModel(models.Model):
    id = models.UUIDField(default=uuid.uuid4(), unique=True, primary_key=True)

    def save(self, *args, **kwargs):
        self.id = uuid.uuid4()
        super(MyUUIDModel, self).save(*args, **kwargs)