我正在开发saas模型(django 2.1)中的一个应用程序。我使用django租户插件(https://github.com/tomturner/django-tenants)。
我的问题是显示"public“模式中的所有租户。以这种方式查看每个租户有多少用户,以便能够管理他们,等等。将外键放入用户模型中的租户并在注册过程中保存此列是一个好的体系结构解决方案吗?
有没有别的办法呢?
下面是伪代码示例:
class Tenant(TenantMixin):
name = models.CharField(_('Name of company'), max_length=50, unique=True)
on_trial = models.BooleanField(default=True)
paid_until = models.DateTimeField()
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
auto_create_schema = True
def __str__(self):
return self.name
def get_name(self):
return self.name
class Domain(DomainMixin):
pass
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('Email address'), unique=True)
first_name = models.CharField(_('First name'), max_length=60, blank=True)
last_name = models.CharField(_('Last name'), max_length=60, blank=True)
member_of_company = models.ForeignKey(Tenant, on_delete=models.CASCADE, related_name='users', null=True, blank=True)发布于 2019-05-24 09:36:37
您可以使用以下代码遍历租户并获取每个租户的用户:
from django.db import connection
from django.contrib.auth import get_user_model
from tenant_schemas.utils import get_tenant_model
UserModel = get_user_model()
TenantModel = get_tenant_model()
for tenant in TenantModel.objects.all():
connection.set_tenant(tenant)
tenant_users = UserModel.objects.all()
# Do whatever you want with your usershttps://stackoverflow.com/questions/56282243
复制相似问题