我有一个非常简单的项目,其中包含一个包含以下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这样的东西,但我想避免多个子域。
我想管理网址的方式是:
我在网上看了很多关于Django多租户的文章,但没有找到符合我需求的解决方案:
感谢您的帮助!
答案 0 :(得分:1)
不应该太难。您必须编写自己的中间件并将其放在settings.py中。复制并粘贴此文件并对其进行修改,以使用网址的不同部分而不是此处的子网域:
https://github.com/bcarneiro/django-tenant-schemas/blob/master/tenant_schemas/middleware.py