我已经为酒店做了一个系统,我想给它几个酒店具有相同的基本代码,我使用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:类型"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租户这是一些修改
- settings.py文件中应该只有共享和租户应用…安装的应用包括共享应用和租户应用
- 您的租户应用程序没有一些重要的应用程序,如内容类型…
应该还有其他错误,所以我认为你应该检查这些:
- 刚刚检查了您的settings.py。你可以观看这个视频(https://youtu.be/QU70PbJuAUo)
- 您的租户应用程序缺少一些重要的应用程序,您可以在这里参考https://github.com/Academy-Omen/saasy-blog
在设置django租户之前,还要确保你的项目能够成功连接到PostgresSQL数据库。