我尝试用uuid4生成的标识符创建一个模型。但是,我想要的是十六进制uuid格式(没有"-"),而不是常规的uuid。以下是我尝试过的:
class Model(models.Model):
identifier = models.CharField(max_length=32, primary_key=True, default=uuid.uuid4().hex, editable=False)
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
def __str__(self):
return self.identifier
class Meta:
abstract = True它不是每次实例化继承类时返回唯一id,而是返回相同的id,因为使用了uuid4()。我试图将默认值从uuid.uuid4().hex更改为uuid.uuid4.hex,但似乎不能直接从uuid4调用hex。那么,用十六进制格式从uuid为我的标识符生成默认值的可能方法是什么?
发布于 2018-01-25 08:34:32
class Model(models.Model):
identifier = models.CharField(max_length=32, primary_key=True, default=uuid.uuid4, editable=False)如果使用uuid.uuid4(),函数将在runserver上执行,只需给出签名,django将执行其余的签名。
https://stackoverflow.com/questions/48438569
复制相似问题