【问题标题】:How to test Django app with multitenancy on localhost如何在 localhost 上使用多租户测试 Django 应用程序
【发布时间】:2020-09-29 19:35:43
【问题描述】:

我正在开发一个通过 django-tenant-schemas 库与多租户一起工作的 Django 应用程序。我们将子域绑定到我们的租户。在生产环境中运行数据迁移之前,我需要在本地测试它,但我遇到的问题是我无法访问所有租户。我需要做的是使用应用程序,单击按钮,看看一切是否仍然有效,冒充我们的多个客户。

我们目前已将其设置为公共架构绑定到我的本地计算机上的127.0.0.1,而我们自己的租户绑定到localhost。在我们的暂存/生产中,它将是 client.ourdomain.com,但据我了解 - 并经过测试 - 你不能在 localhost 上使用子域,所以我不知道如何访问其他租户模式。

我已尝试编辑我的 /etc/hosts 文件以绑定以下 2 但这些不起作用:

localhost client.localhost
127.0.0.1 client.localhost

这似乎是很多人都会遇到的问题,但我似乎找不到关于如何做到这一点的好信息in the official docselsewhere,虽然第二个链接看起来是我需要的,但他们建议我已经尝试过了。

有谁知道我如何做到这一点?

【问题讨论】:

    标签: django multi-tenant hosts


    【解决方案1】:

    您可以将 client1.example.test、client2.example.test 等绑定到您的 127.0.0.1 ip。

    【讨论】:

    • 我试过这个,但我遇到的问题是我的开发服务器在端口 8000 上运行,你不能在主机文件中指定它。我查看是否可以在端口 80 上运行 Django,但不推荐
    • 我试图通过添加一个从端口 80 到端口 8000 的反向代理来解决这个问题,但这也不能解决我的问题,因为我在另一个端口上也有一个前端,那时我无法到达
    • 如何为您的前端添加一个选项以指定完整主机,这样您就可以告诉它连接到client1.example.test:8000(当然,还要注意CORS标头)-github.com/adamchainz/django-cors-headers
    最近更新 更多