Django:使用自定义AUTH系统,为什么仍然需要用户模型?

时间:2010-02-18 22:02:00

标签: django django-authentication django-users

我正在开发一个SAAS并且最难缠绕我的大脑为什么我需要使用“用户”来做除我以外的任何事情。我不知道为什么,但它让我觉得我作为整个软件的开发者/管理员,使用完整的Django Admin访问(如Sauron之眼),与“帐户”具有相同类型的User对象“持有人的”UserProfile“有。请帮助我理解为什么这是必要的。

示例:

class Account(models.Model): # represents copporate customer
    admin = models.ForeignKey(User)
    # other fields ...

class UserProfile(models.Model):
    user = models.ForeignKey(User)
    account = models.ForeignKey(Account)

感觉我正在将内置管理功能与我的帐户持有者的用户功能混合在一起。这只是为了重用request.user等元素吗?

1 个答案:

答案 0 :(得分:1)

嗯,重用代码和功能可能是一个愉快的副作用,但从根本上说,我认为这不会被打破。

用户代表使用您网站的人。在基层,无论是谁,或者他们需要什么特性或功能都无关紧要 - 只是他们提出请求并且可以通过某种方式进行识别。

可以在不同的层中添加更多功能,可以通过内置组件(如“组”或“权限”),也可以通过您自己构建的其他内容(如您在示例中所做的那样)添加。