首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django多租户

Django多租户
EN

Stack Overflow用户
提问于 2013-06-04 12:15:39
回答 1查看 1.1K关注 0票数 4

我有一个非常简单的项目,其中包含一个带有以下models.py的应用程序:

代码语言:javascript
复制
class UserAccount:
    user = models.OneToOneField(User)
    additional = models.CharField(max_length=100)

class Project:
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=200, blank=True, null=True)

class Record:
    user_account = models.ForeignKey(UserAccount)
    project = models.ForeignKey(Project)
    date = models.DateTimeField()

我希望不同的团队能够使用这个应用程序。但是,我希望以某种方式分隔这些表(不要将所有帐户、项目和记录都放在同一个表中)。

一种解决方案是为每个团队复制这个应用程序,这是不好的。另一种方法是使用类似于https://github.com/bcarneiro/django-tenant-schemas的东西,但我希望避免多个子域。

我管理urls的方式是:

  • mysite.com/teamA/
  • mysite.com/teamB/
  • mysite.com/admin/teamA/
  • mysite.com/admin/teamB/

我在网上读了很多关于Django多租赁的文章,但没有找到一个适合我需要的解决方案:

  • 1 DB,但不是同一表中的所有租户数据
  • 不使用站点或子域,而是:mysite.com/tenant2 1/,mysite.com/tenant2 2/,

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2013-08-21 18:50:48

应该不会太难的。您必须编写自己的中间件并将其放入settings.py中。复制并粘贴此文件并修改它以使用您的url中与子域不同的部分:

schemas/middleware.py

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16917573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档