gpt4 book ai didi

Django Multi-Tenancy

转载 作者:行者123 更新时间:2023-12-03 10:31:06 27 4
gpt4 key购买 nike

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

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 的东西,但我想避免多个子域。

我想管理网址的方式是:
  • mysite.com/teamA/
  • mysite.com/teamB/
  • mysite.com/admin/teamA/
  • mysite.com/admin/teamB/

  • 我在网上阅读了很多关于 Django Multi-Tenancy 的文章,但没有找到适合我需求的解决方案:
  • 1 DB 但不是所有租户数据都在同一表中
  • 不使用站点或子域,而是:mysite.com/tenant1/、mysite.com/tenant2/、

  • 谢谢你的帮助!

    最佳答案

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

    https://github.com/bcarneiro/django-tenant-schemas/blob/master/tenant_schemas/middleware.py

    关于Django Multi-Tenancy ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16917573/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com