2012-11-16 68 views
24

在Django中,每個模型都有一個僞屬性pk,它指向聲明爲主鍵的字段。獲取Django模型的主字段名稱

class TestModel(models.Model): 
    payload = models.Charfield(max_length=200) 

在這個模型中,如果沒有字段被聲明爲主的pk屬性將指向隱含id字段,其​​被生成。

class CustomPK(models.Model) 
    primary = models.CharField(max_length=100, primary=True) 
    payload = models.Charfield(max_length=200) 

在這個模型中,pk屬性將指向明確的定義主鍵字段primary

所以我的問題是,我怎麼能得到的字段的名稱,也就是主鍵?

+2

你爲什麼需要它?在任何情況下都可以使用pk。 –

+1

我們需要通過腳本將一個數據庫遷移到另一個數據庫。 – Martin

回答

29

也將對PK-屬性的屬性 「名」。這似乎持有該字段的名稱。

CustomPK._meta.pk.name 

在我的情況下,我得到值「id」作爲結果(它應該)。 :-)

+3

pk.name不返回列名,它跳過「_id」後綴。 (在Django 1.7上測試)我已經使用CustomPK._meta.pk.column – Oleg

相關問題