2011-10-26 48 views
6

我想知道什麼人的想法是直接將模型加入到auth.User對象與用戶的配置文件模型。我應該將ForeignKey轉換爲Django用戶還是Profile模型?

我正在存儲我的用戶在我的應用程序中添加的一些不同類型的模型。應用程序用戶將通過這些模型上的標準搜索其他用戶。

一方面,我在想,如果我直接加入到用戶,那麼每次我需要獲取用戶的記錄時,我都不需要執行request.user.get_profile(),也不需要假定一個用戶總是有一個配置文件(他們在我的應用程序中執行,但仍然)。這使配置文件模型僅包含用戶的聯繫人詳細信息。另一方面,我想當我查找這些其他模型時,我很可能需要配置文件中的值(例如名稱,位置)。

毫無疑問,任何一個都可以工作,所以也許沒關係,但我只是想知道別人的想法是什麼。

謝謝!

魯多。

回答

1

一般來說:如果您想讓應用程序可重用,請始終爲用戶模型創建外鍵。如上所述,在大多數情況下,您將需要User以及Profile實例,因此爲了防止多個數據庫查詢,請使用緩存。

如果可重用性不相關,請爲配置文件創建外鍵並使用select_related()來獲取具有單個查詢的用戶實例。

2

我也建議創建用戶模型的外鍵。在處理視圖中的用戶對象時,它只是讓你的生活變得更簡單。因此,您可以執行諸如request.user.foo_set之類的操作,而無需通過配置文件模型。

+0

我沒有考慮到這一點。合理的建議。 – sleblanc

相關問題