我正在尝试向应用程序添加一些简单的租户支持,创建一个帐户模型,该模型具有要从请求 url 中读取的字符串“租户”并识别系统中的租户:
租户.example.com/* -> www.example.com/租户/*(由 apache 重写)
我编写了一个简单的中间件来从 request.path 捕获这个 /tenant/ 并添加一个 request.account 对象来使用。
我的问题是我的网址映射。
我试过这个:
url(r'^(?P<tenant_id>[\w\-]+)/', include('project.urls_tenant')),
并在 urls_tenant.py 中定义了一些简单的 url:
url(r'^app1/', include('project.app1.urls')),
url(r'^app2/', include('project.app2.urls')),
当我尝试访问任何页面时,我收到一条错误消息:
generic_view_method() 得到了一个意外的关键字参数“tenant_id”
因为它不(也不应该)期望tenant_id 作为参数。
如果我将urls.py文件中的tenant_id 硬编码为/ test_tenant/一切正常。
我做错了什么以及如何解决它,以便正常处理请求和响应?
非常感谢你们。我以此作为参考:django 上多租户应用程序的最佳架构