django-tenants TypeError: argument of type 'TenantQueryset' is not iterable

django-tenants TypeError: argument of type 'TenantQueryset' is not iterable

我已经为酒店制作了一个系统,我想将它提供给具有相同基本代码的几家酒店,我已经使用了 django-tenant-schemas,这是我的 SHARED_APPTENANT_APP 但是当我尝试 python manage.py migrate_schemas --shared 时,它只会创建我的共享应用程序列表,当我尝试 manage.py migrate_schemas --tenant manage.py migrate_schemas 时,它会引发此错误

if public_schema_name in tenants: TypeError: argument of type 'TenantQueryset' is not iterable

这是我的settings.py

SHARED_APPS = [
    'tenant_schemas',
    'users',
    'rosetta',
    'widget_tweaks',
    'import_export',

    'django.contrib.contenttypes',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

TENANT_APPS = [
    'rooms',
    'vistors',
    'booking',
    'costs',
    'payments',
    'cancel',
]

INSTALLED_APPS = list(SHARED_APPS) + [app for app in TENANT_APPS if app not in SHARED_APPS]
TENANT_MODEL= "rooms.Hotel"

#db engine 
'ENGINE': 'tenant_schemas.postgresql_backend',

我的models.py

class Hotel(TenantMixin):
    hotel_name = models.CharField(max_length=40,unique=True)
    def __str__(self):
        return self.hotel_name

class Room(models.Model):
    room_no = models.IntegerField()
    #others 

我有更多模型,但它们都是从 models.Model 继承的,在 public 模式中它只为 SHARED_APP 应用程序创建表,TENANT_APP 未创建 django 版本 2.2 db : postgresql 还有什么我必须改变的吗?或者没有其他方法可以实现吗

你没有正确设置 django 租户 这些是一些更正

  1. 从 settings.py 文件中应该只有共享和租户应用程序...安装的应用程序由共享和租户应用程序组成
  2. 您的租户应用没有一些重要的应用,例如内容类型...

应该还有其他错误,所以我认为你应该检查这些:

  1. 刚刚检查了您的 settings.py。您可以关注此视频 ( https://youtu.be/QU70PbJuAUo )
  2. 您的租户应用程序缺少一些您可以在此处参考的重要应用程序https://github.com/Academy-Omen/saasy-blog

在设置 django 租户之前,还要确保您可以将项目成功连接到 PostgresSQL 数据库。