【问题标题】:Adding products in django-oscar homepage在 django-oscar 主页中添加产品
【发布时间】:2015-07-12 21:00:59
【问题描述】:

我正在尝试找出在我的主页中展示产品的最佳方式。我正在使用 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”中的产品。我不确定这是否是实现此功能的最佳方法,如果其他人对此解决方案有替代方案,请发表评论。

【问题讨论】:

    标签: django django-oscar


    【解决方案1】:

    为此,Oscar 有一个名为 promotions 的应用程序。此应用程序负责在主页上呈现内容块,除其他外(我可以看到您从文档中发现)。

    通常您会使用促销应用向页面添加产品和其他类型的内容。这可以在仪表板中使用Content blocks 来完成,它可以在Content 菜单下找到。

    您可以定义几种促销类型(单一产品、自动和精选产品列表等)。

    定义促销后,您将能够将其与页面路由相关联,在您的情况下应该是/

    如果您选择更改此行为,那么 documentation 应该提供一个很好的起点。

    2021.02.12 更新:

    Django Oscar Promotions 是一款适用于 Oscar 仪表板可编辑促销内容的应用程序。它以前是 Oscar 核心的一部分,但现在已分离成一个独立的应用程序。

    请看这里:https://github.com/django-oscar/django-oscar-promotions

    【讨论】:

    • 我尝试将块内容添加到页面;但是,出现“URL“/”不存在”的错误,似乎我无法将块内容插入到我的根 URL 中。你知道怎么解决吗?
    • 您使用的是哪个版本的 Oscar,您能告诉我您是如何将其网址添加到您的项目 urls.py 中的吗? (只是关于奥斯卡的那句话)
    • 其实我是从 Github 导入项目的,所以我没有使用官方版本。我正在使用url(r'', include(application.urls)), 添加奥斯卡的网址。我从 Github 导入了项目,因为在 virtualenv 环境中安装 Oscar 后,我无法找到它的文件夹(我希望能够对其文件进行一些更改)。
    • 一切都很好,您是否尝试过将输入框留空? (尽管我很确定会弹出相同的错误)您可能应该稍微阅读 Oscar 的文档,它具有的一个更好的功能是能够让您将其中的任何部分换成您自己的。我不建议你分叉它,除非你真的在做一些非常大的改变,而且你不介意放弃未来的更新。
    • 我再次安装它,我发现原来的文件夹在哪里。我现在的问题是如何使用自定义模板展示产品?我是否必须导入一些标签或更改视图中的某些内容?
    【解决方案2】:

    我还想将目录作为默认页面观看,我通过 /etc/nginx/sites-available/myproject 末尾的 nginx rewrite func 找到了解决方案

    这个文件看起来像这样:

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      • 2014-05-11
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多