我一直在研究在單個Django框架下擁有多個站點的各種方法(並且有很多)。如何使用獨特的settings.py爲每個SITE_ID設置django
我仍然沒有看到適合我的用例的解決方案。用例之中:
- 單個數據庫,因爲大多數數據的(95%+)將在兩個 應用
- 兩個不同的用戶類型之間被共享,經由不同的域, 和在每個登錄其實用相同的原始數據進行交互,不同
我想實現的是:
當訪問者來到example.com,爲SITE_ID = 1的設置生效。
當訪問者來到training.example.com時,SITE_ID = 2的設置將生效。
我想這樣做的原因是:
- 我想用明確不同的用戶配置的對象爲不同的用戶
- 我想組合和不同的域之間的匹配,在我的意志的看法和應用
關於Sites框架的Django文檔似乎對我沒有幫助,儘管有了這個和其他一些文章,我可以看到一些可能性。
我現在的想法是使用wsgi服務器(在我的情況下是uWSGI)來實際解決它,在那裏我會使用Django的默認wsgi.py,複製它,並且每個wsgi conf都會擁有自己的Django settings.py。
然後,服務器實際上將提供兩個不同的wsgi應用程序,即使它們使用大部分相同的代碼。
所以,在這種情況下,我的Django的項目將有:
- example.com.settings.py(SITE_ID = 1)
- training.example.com.settings.py(SITE_ID = 2 )
- example.com.wsgi.py(使用example.com.settings.py)
- training.example.com.wsgi.py(使用training.example.com.settings.py)
我的情景io在這裏應該可以工作,但它將是在相同的Django實例中解決這個問題的兩倍內存。
任何我需要實現的更好的實現?
設置位於項目範圍,而不是應用程序範圍。 – pwalsh
我的不好。 Meant項目一直 – user1658078