2014-11-21 107 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

保持它作为尽可能简单,你说这要感谢你自己..

相关问题