2013-06-24 82 views
0

我目前正在研究一個Django項目。 我在其中一個模型中使用外地。Django中的外國字段

class Purchase (models.Model): 
     user = models.ForeignKey(User, blank = True, null = True) 
     game = models.ForeignKey(Game) 
     ... 

而在視圖來訪問這些值等

p = Purchase.objects.filter(user=request.user,game=request.POST['gameid']) 

在DB(我使用的Postgres),在購買表的字段爲USER_ID和分別game_id 用於用戶和遊戲。 我認爲它的Django默認使用_id後綴外部字段。

於是,我就在manage.py殼 了一下,我才知道,我得到即使我使用

p = Purchase.objects.filter(user_id=request.user,game_id=request.POST['gameid']) 

所以我的疑問是,是否定義的字段名的成績相同數量DB中這些字段的模型和確切名稱可以互換使用?任何進一步的信息或解釋將不勝感激。 謝謝

回答

0

Django對外鍵字段是這樣做的。如果你想在數據庫同名,那麼你可以使用db_column定義列名:

user = models.ForeignKey(User, db_column='user') 

P.S您可以同時使用user_iduser引用外鍵。這絕對沒問題。但我會建議你使用模型級名稱來避免混淆。

+0

感謝@Aamir的解釋。 – zephyr