oyb*_*k.t 5 python django uuid
我有一个模型和 UUID 作为主键字段。UUID id 太长了。我想让它像 YouTube 一样简短。
class Video(models.Model):
id = models.UUIDField(
primary_key=True,
default=uuid.uuid4,
editable=False,
)
Run Code Online (Sandbox Code Playgroud)
而不是这个
UUID('b39596dd-10c9-42c9-91ee-9e45b78ce3c1')
Run Code Online (Sandbox Code Playgroud)
我只想拥有这个
UUID('b39596dd')
Run Code Online (Sandbox Code Playgroud)
我怎样才能达到上述目标?
the 的第一部分uuid被定义为 thetime_low所以我们可以这样做,但它不再是一个uuid.UUID类型。
sample = uuid.uuid4()
UUID('6af2fd74-fbaf-4a9a-a973-8d052634a624')
tl = sample.time_low
1794309492L
Run Code Online (Sandbox Code Playgroud)
然后我们将其转换回十六进制,
hex(int(tl.time_low))[2:]
'6af2fd74'
Run Code Online (Sandbox Code Playgroud)
您可以通过将其拆分为普通字符串来执行相同的操作,但我不明白为什么它很重要。一旦将其分配给变量,它就是给定的,因此您可以根据需要对其进行解析。