2010-09-03 53 views
1

我正在開發具有許多類型的用戶的網頁,每個用戶具有不同的配置文件屬性。我想使用內置的身份驗證系統,但:Django驗證用戶

a)我想使用django註冊。 b)我可以將User.get_profile指向只有一個配置文件模型。

如何在漂亮的時尚中實現這一點?

回答

0

我沒有使用django註冊,所以我不知道它是什麼。對於你的問題的第二部分,一個辦法是

  1. 副教授每User
  2. UserProfile使用generic relationshipUseProfile添加不同種類的ProfileProperty類和鏈接到他們的。

我知道,這是有點延伸。

0

我不是專家,也不是在python,django或數據庫,但幾周前我遇到了一個類似的問題,並在#django有人建議我使用通用關係來實現這一點。

我創建了一個UserProfile模型,它被喜歡(通過OneToOnefield)添加到「true」配置文件中,並使用contrib.content-type和generic關係我可以使用幾種不同的porfile類型。

請注意,如果您不害怕在每個get_profile()函數中多打一次數據庫,就應該爲您工作。

另一種方法是創建一個包含所有配置文件類型的所有字段並使用某種類型的掛鉤(或重新實現自定義save())以根據配置文件類型檢查退役字段的大表。但是對我來說這看起來很複雜,特別是如果你想要有很多不同的配置文件類型的話。

另一種替代方法是創建一個TextField派生的自定義字段,並將其用作字典的存儲區,您可以在保存時對其進行醃製並在裝入時從其中取出。通過一些黑客行爲,你當然可以將一些模型屬性映射到字典鍵。這將允許很大的靈活性。

ya的免費提示:我還使用燈具來測試我的應用程序,並忘記檢查post_save信號的原始參數是否爲True,以防止在使用manage.py loaddata時執行UserProfile創建。由於我在post_save回調中編寫了「真實」配置文件的編碼,所以在我發現發生了什麼之前,這種異常是一種奇怪的現象。

有用的ressource: