0

考虑继承来创建用户的 django auth 用户模型。

class UserProfile(models.Model):
  user = models.OneToOneField(User)

class Domain(models.Model):
  customer = models.ForeignKey(User)

class EmailAccount(models.Model):
  domain = models.ForeignKey(Domain)

我希望为给定的 UserProfile 实例创建超过 1 个用户(用户配置文件是应该只存储一次的客户);如果创建了另一个用户,他将只能管理特定域,因此可以管理在该域上创建的电子邮件帐户。一旦他登录,他应该无法访问在任何其他域上为同一用户创建的任何电子邮件帐户。我希望使用 django 管理员来做同样的事情。

4

1 回答 1

0

Many-to-many关系允许任何一方的许多人。

class UserProfile(models.Model):
    Users = models.ManyToMany(User)

>>> u1 = User(id=1)
>>> u2 = User(id=2)
>>> user_profile = UserProfile()
>>> user_profile.save()
>>> user_profile.users.all()
[]
>>> user_profile.users.add(u1.id, u2.id)
>>> user_profile.save()
>>> user_profile.users.all()
[<User: User object>, <User: User object>]
于 2013-03-07T13:06:40.210 回答