在 django-oscar 主页添加产品
Adding products in django-oscar homepage
我正在尝试找出在主页中显示产品的最佳方式。我正在使用 django-oscar 附带的沙箱构建我的网站(我从 Github 克隆了该项目)。
我发现默认主页是由 'promotions' 应用程序控制的。但是,我的产品只显示在“http://localhost:8000/catalogue”(由 'catalogue' 应用程序控制)内。
有没有办法在我的主页上显示产品?或者我是否必须更改控制主页的默认应用程序? (在这种情况下,我该怎么做?)
编辑 1:我相信我找到了解决方案。你可以按照教程How to Customize an Existing View;但是,您需要进行一些更改,因此您的代码必须如下所示:
from oscar.apps.catalogue.views import CatalogueView
class HomeView(CatalogueView):
template_name = 'promotions/home.html'
这样您就可以访问 'promotions/home.html' 中的产品。我不确定这是否是最好的实现方式,如果其他人有此解决方案的替代方案,请发表评论。
为此 Oscar 有一个名为 promotions
的应用程序。此应用程序负责在主页上呈现内容块等(正如我从文档中看到的那样)。
通常您会使用促销应用向页面添加产品和其他类型的内容。这可以从仪表板完成,使用 Content blocks
,可以在 Content
菜单下找到。
您可以定义几种促销类型(单一产品、自动和手工挑选的产品列表等)。
定义促销后,您将能够将其与页面路由相关联,在您的情况下应为 /
。
如果您选择更改此行为,那么 documentation 应该是一个很好的起点。
2021.02.12 更新:
Django Oscar Promotions 是 Oscar 中仪表板可编辑的促销内容的应用程序。它以前是 Oscar 核心的一部分,但现在已分离为一个独立的应用程序。
我也想将目录作为默认页面观看,我在 /etc/nginx/sites-available/myproject[= 末尾通过 nginx rewrite func 找到了解决方案18=]
此文件如下所示:
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/ permanent;
}
我正在尝试找出在主页中显示产品的最佳方式。我正在使用 django-oscar 附带的沙箱构建我的网站(我从 Github 克隆了该项目)。
我发现默认主页是由 'promotions' 应用程序控制的。但是,我的产品只显示在“http://localhost:8000/catalogue”(由 'catalogue' 应用程序控制)内。
有没有办法在我的主页上显示产品?或者我是否必须更改控制主页的默认应用程序? (在这种情况下,我该怎么做?)
编辑 1:我相信我找到了解决方案。你可以按照教程How to Customize an Existing View;但是,您需要进行一些更改,因此您的代码必须如下所示:
from oscar.apps.catalogue.views import CatalogueView
class HomeView(CatalogueView):
template_name = 'promotions/home.html'
这样您就可以访问 'promotions/home.html' 中的产品。我不确定这是否是最好的实现方式,如果其他人有此解决方案的替代方案,请发表评论。
为此 Oscar 有一个名为 promotions
的应用程序。此应用程序负责在主页上呈现内容块等(正如我从文档中看到的那样)。
通常您会使用促销应用向页面添加产品和其他类型的内容。这可以从仪表板完成,使用 Content blocks
,可以在 Content
菜单下找到。
您可以定义几种促销类型(单一产品、自动和手工挑选的产品列表等)。
定义促销后,您将能够将其与页面路由相关联,在您的情况下应为 /
。
如果您选择更改此行为,那么 documentation 应该是一个很好的起点。
2021.02.12 更新:
Django Oscar Promotions 是 Oscar 中仪表板可编辑的促销内容的应用程序。它以前是 Oscar 核心的一部分,但现在已分离为一个独立的应用程序。
我也想将目录作为默认页面观看,我在 /etc/nginx/sites-available/myproject[= 末尾通过 nginx rewrite func 找到了解决方案18=]
此文件如下所示:
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/ permanent;
}