2015-05-03 2 views
2

Я пытаюсь найти лучший способ отображения продуктов внутри моей домашней страницы. Я строю свой сайт с помощью песочницы, которая уже поставляется с django-oscar (я клонировал проект из Github).Добавление продуктов на домашнюю страницу django-oscar

Я обнаружил, что домашняя страница по умолчанию контролируется приложением «Акции». Однако мои продукты отображаются только внутри «http://localhost:8000/catalogue» (контролируется приложением «каталог»).

Есть ли способ отображения продуктов на моей домашней странице? Или мне придется изменить приложение по умолчанию, которое контролирует главную страницу? (в этом случае, как я могу это сделать?)

EDIT 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

Какую версию Oscar вы используете, и можете ли вы показать мне, как вы добавляете свой url к вашим проектам 'urls.py'? (только строка, касающаяся оскара) – Claudiu

+0

На самом деле я импортировал проект из Github, поэтому я не пользуюсь официальным релизом. Я добавляю URL-адреса Оскара, используя 'url (r '', include (application.urls))'. Я импортировал проект из Github, потому что после установки Oscar в виртуальной среде я не смог найти его папку (я бы хотел иметь доступ, чтобы внести некоторые изменения в свои файлы). –

0

Я также хотел смотреть каталог в качестве страницы по умолчанию, и я должен был найти решение через Nginx переписывают FUNC в конце /и т.д./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; 
} 
Смежные вопросы