如何在django中解析用户模型的外键关系

时间:2013-03-06 11:36:09

标签: python django

考虑继承用于创建用户的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实例创建多个用户(用户配置文件是应该只存储一次的客户);如果创建了另一个用户,他将只能管理特定域,从而管理在该域上创建的电子邮件帐户。在登录后,他不应该为同一用户访问在任何其他域上创建的任何电子邮件帐户。我希望使用django admin来执行相同的操作。

1 个答案:

答案 0 :(得分: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>]