我正在尝试找出在我的主页中展示产品的最佳方式。我正在使用 django-oscar 附带的沙箱构建我的网站(我从 Github 克隆了该项目)。
我发现默认主页是由“促销”应用程序控制的。但是,我的产品只是显示在“http://localhost:8000/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 核心的一部分,但现在已分离为一个独立的应用程序。
见这里:https://github.com/django-oscar/django-oscar-promotions
关于django - 在 django-oscar 主页中添加产品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30013814/