2011-11-22 32 views

回答

28

您可以在現場的db_column屬性設置爲任何你想。

+0

這樣做。謝謝! –

+0

有一個像FK_AUTO_ID = False這樣的設置會非常有用,我碰巧正在與一個遺留數據庫進行集成,這個數據庫必須編寫非乾性代碼,比如basiscd = ForeignKey('...',db_column ='basiscd',related_name = 'basiscd',它有點惱人,表格在並行場景中有auto_id = False –

+0

甚至更​​好FK_AUTO_ID ='cd'在我的例子中,這個項目中的所有FK都擁有這個約定,這不同於Django的默認(假設FK_AUTO_ID ='_ id')。 –

2

在模型中使用外部字段時,Django會創建兩個字段:一個用於實際鏈接,另一個用於引用另一個模型。

class A(Model): 
    i = IntegerField() 

class B(Model): 
    a = ForeignKey(A) 

B現在有兩個字段:aa_ida_id是存儲在數據庫中的唯一ID,而a可以用來直接訪問字段A,像這樣:

b = B.objects.get(...) 
b.a.i = 5; # Set the field of A 
b.a.save() # Save A