django-tenants TypeError: 类型为'TenantQueryset'的参数不可迭代



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

if public_schema_name in tenants:TypeError:类型"TenantQueryset"的参数不可迭代

this is my 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没有创建 db: postgresql还有什么我需要改变的吗?或者没有其他方法可以实现这个目标吗?

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

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

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

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

在设置django租户之前,还要确保你的项目能够成功连接到PostgresSQL数据库。

最新更新