我目前正在開發一個Django站點,用戶可以擁有多個「賬戶」,以便他們可以在通過站點進行交互時在不同的公共配置文件之間進行無縫切換。我設計的內容很可能會吸引每個人註冊多次(並且不會感到灰心),我只想提供這種方式,用戶可以將個人資料連接在一起,輕鬆切換並且只需要登錄在一次。Django多用戶登錄 - 最佳方法?
我想過了這兩種方法到目前爲止,包括:
一(
User
模型+SiteProfile
模型)對,每人許多PublicProfile
車型。AUTH_PROFILE_MODULE
被設置爲指向SiteProfile
模型。問題在於我無法輕鬆使用每個對象的權限:這些權限將設置在User
對象上而不是公共配置文件中,因此,當用戶僞裝時,也會將適用於「PublicProfileA」的頁面的權限應用於該對象作爲「PublicProfileB」。一個
Account
模型和許多(User
模型+UserProfile
模型)每人對。AUTH_PROFILE_MODULE
被設置爲指向UserProfile
模型。這可以使權限按照預期工作,並且我可以簡單地擁有一個自定義後端,通過對用戶進行身份驗證來切換用戶,如果他們當前以與外鍵相同的對象Account
登錄。雖然可以通過讀取Account
對象上的字段來進行認證,這意味着每個User
對象上的password
字段將被浪費。如上所述,但是從
User
開始子類別Account
。儘管我已被強烈建議,但(因爲原因不明)。
有沒有什麼陷阱或更好的方法呢?最終,我應該使用內置的User
模型作爲每人一個模型,用於標識一組面向公衆的配置文件(其中這些配置文件的FK可以返回到User
對象),或者將其用作配置文件本身,將每個人鏈接回單個Account
對象?
有趣的問題。你能提供一些更多關於這些不同配置文件提供的內容嗎?例如如果您正在構建電子商務網站,則您的用戶可能擁有個人帳戶和公司帳戶。這將影響例如折扣政策,訂單數量/數量等。此信息將有助於提供更明智的建議。 – rantanplan
哇,很抱歉這麼晚!這是一個社交網站,一個功能是角色扮演元素。所有的賬戶都是「平等的」,因爲他們不會有單獨的「類型」,沒有像Corperate或個人賬戶那樣的簡單「會員」。此外,無論如何都會有自定義身份驗證後端,因爲內置的Django身份驗證後端無法滿足我的需求。希望有所幫助! –