Django:使用抽象基类和多个用户类型与auth系统

时间:2013-09-23 07:33:35

标签: python django django-models django-custom-user

我需要编写一个可以登录各种类型用户的系统,每个用户都有自己不同的数据集存储在模型中。我的第一直觉是使用新的抽象基类并创建我自己的用户类型,所以我有类似的东西:

class BaseUser(AbstractBaseUser):
    email = models.EmailField(max_length=254, unique=True, db_index=True)

    USERNAME_FIELD = 'email'
    # ...

class StaffUser(BaseUser)
    name = ...
    # ...

class ClientUser(BaseUser)
    company_name = ...
    address = ...
    # ...

还有一些用户类型。但是他们都需要通过相同的界面登录,并被定向到正确的地方,并且只能做他们的用户类应该能够做的事情,并且只能看到他们应该做什么。

但似乎我不能只使用常规身份验证方法,因为它无法搜索多个模型(据我所知)。我遇到了这个可能有用的片段(http://djangosnippets.org/snippets/2546/),但我不确定这是否真的是最好的方法,或者我应该只处理有很多空字段而且只是一个用户类并使用权限系统。这样做最干净的方法是什么?

0 个答案:

没有答案