在django中,大多數多租戶實現(模塊)將主機映射到視圖上。多租戶django應用程序使用URL映射而不是域映射
例如映射主機/ URL - > Django的視圖中使用postgress架構的:
customer1.myapp.com/view1/arg1 -> myapp.view1(arg1) using schema 'customer1'
customer2.myapp.com/view1/arg1 -> myapp.view1(arg1) using schema 'customer2'
customer3.myapp.com/view1/arg1 -> myapp.view1(arg1) using schema 'customer3'
由於我的PaaS(Pythonanywhere)是不支持通配符域(* .myapp.com),我試圖建立使用多租戶應用URL映射:
eg映射URL - > django的視圖:
myapp.com/customer1/view1/arg1 -> myapp.view1(arg1) passing implicit parameter tenant='customer1'
myapp.com/customer2/view1/arg1 -> myapp.view1(arg1) passing implicit parameter tenant='customer2'
myapp.com/customer3/view1/arg1 -> myapp.view1(arg1) passing implicit parameter tenant='customer3'
這裏一些中間件應採取租戶參數傳遞到視圖和過濾查詢結果適用於所選對象承租人的護理。 例如https://django-tenant-schemas.readthedocs.io/en/latest/
但這裏的問題是:如何做到這一點 - 哪些包可以處理這個 - 用於URL映射而不是主機映射?
注:Django的multitenants提到「支持的URL模式以及子域」,但尚不清楚如何做到這一點? https://pypi.python.org/pypi/django-multitenants