相关疑难解决方法(0)

在Django 1.5/1.6中设置两种不同类型的用户

请注意 - 这是关于此主题的原始问题的更新版本,但值得再次询问Django如何处理用户和身份验证.

我正在一个网站上有两个非常不同类型的用户-我们称它们CustomersStore Owners.两者都在网站上注册,但功能却截然不同. Customers只需一个个人资料,就可以在他们喜欢的商店中购物. Store Owners拥有一个帐户,但可以访问多个商店,每个商店可以有多个Store Owners.

模型的确切细节无关紧要,但这两类用户需要非常不同的字段.理想情况下,模型看起来像这样:

Customer
  email (username)
  password
  name
  address
  time_zone
  preferred_shipping
  favorite_stores (many-to-many field)
  ...

Store Owner
  email (username)
  password
  name
  balance
  stores_owned (many-to-many field on Stores)
  stores_managed (many-to-many field on Stores)
  ...
Run Code Online (Sandbox Code Playgroud)

原来,当Django的有穷自定义用户的支持,我有一个UserProfile用一个有些额外的字段级OneToOneUser,再附加CustomerStoreOwner那名课OneToOneUserProfile.这不是很好.

鉴于Django 1.5/1.6的变化,我试图想出最好的结构方法.现在,我有以下内容:

class CustomerUser(AbstractBaseUser):
    ...

class StoreOwnerUser(AbstractBaseUser):
    ...
Run Code Online (Sandbox Code Playgroud)

但是因为有两种类型的用户,我不能AUTH_USER_MODEL只设置其中一种.

构造这个的最佳方法是什么,以便我可以有两个不同类型的用户使用不同的字段,而不会在用户身份验证,用户创建或管理员方面造成任何问题?

另外,我怎样才能从登录单独告诉该用户是a CustomerUser还是 …

python django django-models django-users django-1.6

11
推荐指数
1
解决办法
6470
查看次数

标签 统计

django ×1

django-1.6 ×1

django-models ×1

django-users ×1

python ×1