2015-05-03 75 views
2

我試圖找出在我的主頁中顯示產品的最佳方式。我正在使用django-oscar自帶的沙箱構建我的網站(我從Github克隆了這個項目)。在django-oscar主頁中添加產品

我發現默認主頁由'promotions'應用程序控制。但是,我的產品正在'http://localhost:8000/catalogue'內(由'catalog'應用程序控制)顯示。

有沒有辦法在我的主頁上顯示產品?或者我將不得不更改控制主頁的默認應用程序? (在這種情況下,我該怎麼做?)

編輯1:我相信我找到了解決方案。您可以按照教程How to Customize an Existing View;但是,你需要做出一些改變,讓你的代碼必須是這樣的:

from oscar.apps.catalogue.views import CatalogueView 

class HomeView(CatalogueView): 
    template_name = 'promotions/home.html' 

這種方式,您將有機會獲得該產品在你的「促銷/ home.html做爲」。我不確定這是否是實現此目標的最佳方式,如果其他人有此解決方案的替代方案,請發表評論。

回答

6

爲此,奧斯卡有一個名爲promotions的應用程序。此應用程序負責在主頁上呈現內容塊等等(正如我可以看到您從文檔中發現的那樣)。

通常您會使用促銷應用程序將產品和其他類型的內容添加到頁面。可以使用Content blocks從儀表板完成此操作,該菜單位於Content菜單下。

您可以定義幾種類型的促銷活動(單品,自動和手工挑選產品列表等)。

定義您的促銷後,您將能夠將其與頁面路線相關聯,在您的情況下應該是/

如果您選擇更改此行爲,那麼documentation應該提供一個很好的起點。

+0

我試圖添加塊內容到頁面;但是,出現錯誤「URL」/「不存在」,似乎我無法將塊內容插入到我的根URL中。你知道如何解決這個問題嗎? –

+0

您使用的是什麼版本的奧斯卡,你能告訴我你是如何將它的網址添加到你的項目'urls.py'嗎? (只是關於奧斯卡的一行) – Claudiu

+0

其實我從Github導入了這個項目,所以我沒有使用正式版本。我使用'url(r'',include(application.urls))',添加了奧斯卡的url。我從Github導入了這個項目,因爲我在virtualenv環境中安裝了Oscar後,無法找到它的文件夾(我希望有權訪問它的文件進行一些更改)。 –

0

我也想看着目錄作爲默認頁面,我必須找到通過nginx的解決方案重寫 FUNC在年底的/ etc/nginx的/網站可用/ myproject的

這個文件看起來像這樣:

server { 
server_name yourdomainorip.com; 

access_log off; 

location /static/ { 
    alias /opt/myenv/static/; 
} 
location /media/ { 
    alias /opt/myenv/media/; 
} 

location/{ 
    proxy_pass http://127.0.0.1:8001; 
    proxy_set_header X-Forwarded-Host $server_name; 
    proxy_set_header X-Real-IP $remote_addr; 
    add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; 
} 
    rewrite ^(/)$ http://yourdomainorip.com/catalogue/$2 permanent; 
}