2017-08-10 24 views
1

我有一個模型和UUID作爲主鍵字段。 UUID ID太長。我希望將其縮短爲與YouTube類似。如何使用Django創建簡短的uuid

class Video(models.Model): 
    id = models.UUIDField(
     primary_key=True, 
     default=uuid.uuid4, 
     editable=False, 
    ) 

取而代之的是

UUID('b39596dd-10c9-42c9-91ee-9e45b78ce3c1') 

我想剛纔這個

UUID('b39596dd') 

我怎樣才能實現上述?

+0

爲什麼不使用CharField併爲該字段經常創建uuid pk? –

+0

@ArpitSolanki似乎工作太多了,我該怎麼做? – if237912print

回答

0

uuid的第一部分定義爲time_low,所以我們可以這樣做,但它不再是uuid.UUID類型。

sample = uuid.uuid4() 

UUID('6af2fd74-fbaf-4a9a-a973-8d052634a624') 

tl = sample.time_low 

1794309492L 

然後,我們只是將其轉換回十六進制,

hex(int(tl.time_low))[2:] 

'6af2fd74' 

你可以做同樣的事情剛拆分它作爲一個正常的字符串,但我不明白爲什麼它很重要。一旦你將它賦值給一個變量,那麼你可以根據你的選擇來解析它。

+0

它有多獨特?在什麼時候它可能會導致問題? – if237912print