2013-05-20 64 views
1

我擁有postgresql DB並在我的模型中使用UUID作爲PK。 當我這樣做更改Django外鍵中的UUID格式

model.rel_model.id 

它返回我的32個字符的UUID(無「 - 」分隔符,例如uuid.hex一樣) - 它是因爲我寫了自定義「to_python」的方法。 但是當我做

model.rel_model_id 

它返回我以uuid ' - ' 分隔符像STR(UUID)。但是我想重新把它弄成和第一個樣本一樣。 我找到了this bug in Django - 這是同樣的問題嗎?

+0

這是相同的,當你試試這個:'STR(model.rel_model.id)' – Mounir

+0

乘坐看看這裏[鏈接](http://docs.python.org/2/library/uuid.html#example) – Mounir

+0

@Mounir是的,它就像'str(model.rel_model.id)',但作爲model.rel_model。 id比model.rel_model_id更慢,並出現在很多不同的地方,重新定義model.rel_model_id工作方式會更好。 –

回答

1

沒關係,用Python的屬性來定義如何獲取或設置id屬性是這樣的:

def getid(self): 
    return str(self.id) 
def setid(self, value): 
    self.id = value 
id = property(getid, setid) 
+0

你認爲我應該把這個代碼放在哪裏? –

+0

在使用這個uuid的模型中。 – Mounir

+0

您的問題是否已解決? – Mounir