django-tenants TypeError: argument of type 'TenantQueryset' is not iterable
django-tenants TypeError: argument of type 'TenantQueryset' is not iterable
我已经为酒店制作了一个系统,我想将它提供给具有相同基本代码的几家酒店,我已经使用了 django-tenant-schemas,这是我的 SHARED_APP
和 TENANT_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 租户
这些是一些更正
- 从 settings.py 文件中应该只有共享和租户应用程序...安装的应用程序由共享和租户应用程序组成
- 您的租户应用没有一些重要的应用,例如内容类型...
应该还有其他错误,所以我认为你应该检查这些:
- 刚刚检查了您的 settings.py。您可以关注此视频 ( https://youtu.be/QU70PbJuAUo )
- 您的租户应用程序缺少一些您可以在此处参考的重要应用程序https://github.com/Academy-Omen/saasy-blog
在设置 django 租户之前,还要确保您可以将项目成功连接到 PostgresSQL 数据库。
我已经为酒店制作了一个系统,我想将它提供给具有相同基本代码的几家酒店,我已经使用了 django-tenant-schemas,这是我的 SHARED_APP
和 TENANT_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 租户 这些是一些更正
- 从 settings.py 文件中应该只有共享和租户应用程序...安装的应用程序由共享和租户应用程序组成
- 您的租户应用没有一些重要的应用,例如内容类型...
应该还有其他错误,所以我认为你应该检查这些:
- 刚刚检查了您的 settings.py。您可以关注此视频 ( https://youtu.be/QU70PbJuAUo )
- 您的租户应用程序缺少一些您可以在此处参考的重要应用程序https://github.com/Academy-Omen/saasy-blog
在设置 django 租户之前,还要确保您可以将项目成功连接到 PostgresSQL 数据库。