我想一些簡單的租賃支持添加到應用程序,創建具有字符串「房客」的Account模型從請求URL讀取和識別系統中的租戶:Django的多租戶的URL配置
租戶 .example.com的/ * - > www.example.com/ 租戶/*(由阿帕奇重寫)
我寫了一個簡單的中間件來捕獲此/承租人/從Request的並添加請求.account要處理的對象。
我的問題是我的網址映射。
我嘗試這樣做:
url(r'^(?P<tenant_id>[\w\-]+)/', include('project.urls_tenant')),
和定義裏面urls_tenant.py一些簡單的網址:
url(r'^app1/', include('project.app1.urls')),
url(r'^app2/', include('project.app2.urls')),
當我嘗試訪問任何網頁,我得到一個錯誤信息:
generic_view_method()得到了一個意外的關鍵字參數'tenant_id'
因爲它沒有(實際上不應該)期望tenant_id作爲參數。
如果我硬編碼tenant_id在urls.py文件/test_tenant/一切工作正常。
我在做什麼錯誤,以及如何解決它,所以請求和響應得到正常處理?
非常感謝你們。我用這個作爲參考:optimal architecture for multitenant application on django
是的,我認爲會這樣做,但是如何解決'{url url some_named_url%}'生成'具有參數'()'和關鍵字參數'{}'的'some_named_url'的相反問題。「 ?非常感謝你!!! – oak
關閉我的頭頂,2個選項:a)編寫自己的'url'標籤和'reverse'實現; b)擺脫apache重寫,讓你的中間件直接根據主機子域來決定租戶,然後你會發布像/ app1/news/latest /這樣的瀏覽器將根據正確的子域來解析的url。 b)對我來說聽起來更好,但我可能錯過了這個問題。 – Steven