2014-11-21 54 views
0

最近我正在開發一個帶有電子商務模塊的CRM系統。由於客戶只登錄電子商務網站(使用Email登錄),員工只登錄CRM,一個Django項目,多個設置.py

我想分開這兩種認證模式。有兩組settings.py是一個好主意,一個使用工作人員AUTH_USER_MODEL,另一個使用客戶作爲AUTH_USER_MODEL? (也許單獨的urls.py以及)

我打算在兩個子路徑或兩個域下運行兩個不同的應用程序設置,這是否會導致任何問題? (像併發問題?)

+1

你爲什麼要分開他們?是不是更容易分離模型層面的邏輯而不是搞亂設置? – doniyor 2014-11-22 06:56:52

+0

@ doniyor有兩種用戶模式,一種用於管理網站,一種用於商業網站,可以實現這一點嗎?如果是這樣,如何設置'AUTH_USER_MODEL'?在我的情況下,客戶和員工可以擁有相同的用戶名(或其他登錄令牌),可以嗎? – 2014-11-22 13:28:32

+0

是的,這是可能的。我會盡力在第二個答案中解釋 – doniyor 2014-11-22 13:41:36

回答

1

你不需要設置兩個AUTH_USER_MODEL = 'myapp.MyUser'或兩個設置爲此目的可能會工作,但這不是這個邏輯屬於的水平。 (設置已經在部署水平如在同一個代碼庫,並同DATABSE等等等等運行多個網站...)

什麼,我會推薦的是一些簡單的:

# settings.py 
AUTH_USER_MODEL = 'yourapp.CustomUser' 

# yourapp's models.lpy 
from django.contrib.auth.models import User 
class CustomUser(models.Model): 
    user = models.OneToOneField(User, related_name="customuser") 
    crm_staff = models.Boolean(default=False) 
    # ... 

,並根據crm_staff,用戶既可以是crm用戶也可以是外部用戶。我的crm_staff默認值設置爲False,所以你必須給它明確每次新用戶進來,但前提是用戶是CRM的員工,那麼你需要的字段設置爲True

保持它作爲儘可能簡單,你說這要感謝你自己..

相關問題