在同一数据库表中管理多个用户库

时间:2013-12-17 15:24:05

标签: python database django administration data-management

我的团队正在开展一个Django项目。它将有一个管理小组来控制其下的几家公司。要将新公司添加到系统中,管理员将使用该面板添加公司的域。这些域实际上将指向我们的系统。我们将通过URL检测公司并根据该公司的域管理视图。例如:我们将向该公司展示用户,在该公司下进行交易等。用户信息,公司详细信息和成员等公司的所有信息都将存储在我们项目的主数据库中。用户将使用他们的电子邮件登录。因此,我们无法通过使用Django的auth模型使数据库中的电子邮件字段(或用户名)成为唯一,因为电子邮件用户可以在不知情的情况下注册到多个不同的公司。我的问题是,对于这种情况,我们的方法应该是什么?

我们正在寻找答案的问题:

  • 为用户设置随机用户名,但在syncdb之后在命令行上创建超级用户时我们会遇到问题,因为第一个参数将是使用USERNAME_FIELD定义的参数。如何处理这个唯一的用户名字段问题?

  • 为每个公司创建不同的用户表。如果是这样,如何自动执行此操作?

1 个答案:

答案 0 :(得分:0)

看起来您可能会遇到一些复杂的用户/ ID管理方案。 考虑使用某种单点登录。 有几个Django友好的解决方案可以帮助您开发身份代理:

django.contrib.auth的OpenID集成 https://launchpad.net/django-openid-auth

我使用支持OpenID的OpenAm 这是一个帖子,给出了一些例子 Implementing Single Sign On (SSO) using Django

Django Social Auth https://github.com/omab/django-social-auth

或者你可以试试“使用电子邮件地址进行Django身份验证” http://www.micahcarrick.com/django-email-authentication.html