簡體   English   中英

Django在同一個實例上的多個站點

[英]Django multiple sites on same instance

我怎樣才能獲得一些功能相似但外觀和內容不同的網站 - 所有數據都會有所不同。

動態更改SITE_ID並編寫自己的模板加載器和靜態文件查找器(相同的URL /靜態/不同的站點指示不同的類別)並為所有人添加ForeignKey到站點?

或者還有其他方法嗎?

謝謝!

我做了類似於你自己的事情。

我的視圖中有一個幫助方法來獲取主機。

def getHost(request):return request.META ['SERVER_NAME']

然后根據主機我的靜態目錄分為2個站點static / host1 / static / host2 /

我為模板做同樣的事情我把它分成2個目錄並調用appropriote!

在同一個實例上拆分Django站點是一項微妙的操作。 首先,您必須牢記您的模型。 與FlatPages一樣,您的模型可能包含到Sites表的ManyToManyField,因此您可以根據需要根據當前站點過濾內容。

關於模板和靜態數據,我喜歡Mark的答案,但你可以采用不同的方式。 您可以將模板和靜態文件夾拆分為具有不同主題和模板配置的多個文件夾。 例如,您可以只有一組模板,以及兩個“主題”,如下所示:

templates 
    / normal_set
static 
    / themes 
        / blue
        / red

您可以使用OneToOneField創建一個表calles SiteConfiguration到Sites表。 此配置表將包含模板文件夾的名稱和站點的主題文件夾的名稱,以便您可以在站點之間共享屬性。 也許你可以在之后緩存它以避免過於頻繁地訪問數據庫。 也許,將這個建議與馬克的建議結合起來。

我假設您的用戶在每個站點都保持不變。

為這個確切的用例設計了2個包:

對於Django 1.8+,有https://bitbucket.org/levit_scs/django-polla

如果您使用的是舊版本的Django,可以使用https://bitbucket.org/uysrc/django-dynamicsites/overview

即使這個答案很晚,但我希望它可以幫助人們絆倒這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM