2. Быстрый старт с демо-проектом

1 октября 2016 г. 15:06

2.1. Локальный запуск демо-проектов

Ты можешь скачать все зависимости и начать тестировать проекты вручную. Если ты хочешь использовать демо как отправную точку для вашего проекта, тогда, вероятнее всего, это лучшее решение.

Заполнение ваших страниц с помощью CMS и добавление продуктов - это скучная работа. Нетерпеливые пользователи могут начать с одного из пяти демо, используя подготовленные данные. Во-первых, убедитесь, что все зависимости инсталлированы в виртуальное окружение как описано в секции Подготовка к инсталляции. Затем вместо ручного добавления страниц и продуктов используйте следующие шаги:

(shoptutorial)$ cd django-shop/example 
(shoptutorial)$ export DJANGO_SHOP_TUTORIAL=commodity 
(shoptutorial)$ ./manage.py initialize_shop_demo 
(shoptutorial)$ ./manage.py compilescss 
(shoptutorial)$ ./manage.py runserver

Затем перейдите на http://localhost:8000/admin/ и авторизуйтесь, введя имя пользователя admin и пароль secret. Это запускает демо для Модель товарного продукта (Commodity Product Model).

Замечание: сначала djangoSHOP рендерит страницу, в которой создаются миниатюры для изображений товаров . Это дорогая операция, которая запускается единожды. Поэтому, пожалуйста, будьте терперливы, когда загружаются товары в первыый раз.

С этой папки вы можете запускать все пять демо-проектов, переконфигурируя переменную окружения DJANGO_SHOP_TUTORIAL. Допустимые значения: commodity, i18n_commodity, smartcard, i18n_smartcard and polymorphic. После смены значения вы должны каждый раз запускать команду ./manage.py initialize_shop_demo.

Замечание: все демки могут быть запущены внезависимости друг от друга, но рекомендуется запускать с примера commodity, а затем переходить к более сложным случаям.

2.1.1. Товарная модель продукта

Демо commodity показывает как запускать одноязычный магазин с общим продуктом, названным Товар. Модель продукта shop.models.defauls.commodity.Commodity - это часть djangoSHOP фреймворка. Это предназначается для тех, кто не хочет настраивать свою модель продукта, и больше предпочитает создава описание продукта, используя основную функциональность CMS.

Модель Товар содержит только следующие атрибуты:

  • Название продукта.
  • Код продукта (артикул).
  • Слаг (часть адреса URLs, который определяет данный продукт).
  • Стоимость продукта.
  • Одно изображение, которое показывается в списке продуктов.
  • Короткое описание, которое показывается в списке продуктов.

Карточка товара для каждого продукта должна быть индивидуально стилизована, используя заполнитель DjangoCMS вместе с системой плагинов djangocms-cascade. Это даёт продавцу всю гибкость для индивидуальной стилизации каждой страницы карточки товара без необходимости создавать специальные HTML шаблоны. В заполнители мы можем добавлять столько текстовых полей, сколько захотим. Дополнительно мы можем использовать галереи изображений, карусели, различные бэкграунды, вкладки и т. д.

Один плагин, который всегда должен присутствовать - это Положить товар в корзину (Add Product to Cart plugin) в интернет-магазин (Shop), в противном случае покупатель не сможет добавить этот товар в корзину и, таким образом, не приобретет ничего.

Использовать модель продукта товара (Commodity product model) имеет смысл только, если торговец не требует специальных атрибутов продукта, и, как правило, подходит только для магазинов с массой статей. В противном случае, создавая повторно шаблон HTML, вероятно, будет требоваться меньше усилий, чем заполнение заполнителя для карточки товара каждого продукта в отдельности.

2.1.2. Интернациональная товарная модель продукта (The Internationalized Commodity Product Model)

Демо i18n_commodity показывает как запустить магазин с общим продуктом как в предыдущем примере, но с возможностью перевода на другие языки следующих атрибутов:

  • Название продукта.
  • Слаг.
  • Название, которое показывается в карточки товара.

Все другие атрибуты нашей модели Товара используются одинакого для всех языков.

Использование интернациональной конфигурации требует установки дополнительного пакета django-parler.

2.1.3. Модель товара карты памяти (The Smart Card Product Model)

Демо smartcard показывает как установить интернет-магазин с модели, которая создаётся с точно описанным типом продукта. Карты памяти имеют множество различных атрибутов, таких как тип карты, производитель, объём памяти и максимальной скорости передачи данных. Вот это ответственность торговца в создании модели базы данных в соответствии с физическими свойствами продукта.

Следовательно, класс myshop.models.smartcard.SmartCard не является частью фреймворка интернет-магазина, а реализован в нашем примере.

Создание пользовательной модели продукта - это всего лишь несколько строк декларативного Python кода. Дополнительно мы можем создать Django шаблон, используя HTML. Однако, это избавляет нас от необходимости создания страницы с помощью плагинов для каждого элемента продукта, который мы хотим предложить. Это также помогает нам структурировать наши продукты, используя атрибуты, а не их описания в свободной форме.

2.1.4. Интернациональная модель товара карты памяти (The Internationalized Smart Card Model)

Демо i18n_smartcard - это вариант похожий на пример выше, но с некоторыми атрибутами, которые должны быть переведены на другие языки, например, заголовок и описание. Название продукта используется во всём мире, поэтому нет надобности его переводить в том числе и его слаг.

2.1.5. Полиморфная модель продукта (The Polymorphic Product Model)

Демо "polymorphic" - это комбинация из всех примеров выше. Здесь описывается базовый продукт, используя класс myshop.models.polymorphic.Product. Мы также описываем общие доступные поля в различных типах продукта. Эти общие поля используются для создания отображения списка продуктов.

Классы модели для карт памяти, смартфонов и вариационного товара наследуются от базового класса продукта. Эти модели дополнительно объявляют атрибуты требуемые для описания физических свойств каждого типа продукта. Так как они меняются, мы также должны создавать специальные шаблоны Карточка товара для каждого из них. Поскольку смартфоны допускают варианты продукта, мы даже должны переопределить шаблон для добавления продукта в корзину.

2.2. Используйте один из демо-проектов в качестве отправной точки для вашего проекта

В зависимости от нужд вашего интернет-магазина, простой способ начать разработку проекта с djangoSHOP - это использовать демо, которое наиболее подходит под ваши цели. Затем путем копирования примера, создать репозиторий для проекта. Начать от рабочего примера и постепенно изменять его до достижения ваших конечных целей, как правило, это намного проще, чем начинать с нуля. Это также является предпочтительным способом во время быстрой разработки.

Оцените статью

5 из 5 (всего 3 оценки)

captcha
Отмеченные звёздочкой поля ( * ) являются обязательными для заполнения.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор перевода

Артём Мальцев

Веб-разработчик, владеющий знаниями языка программирования Python, фреймворка Django, системы управления содержимым сайта Django CMS, платформы для создания интернет-магазина Django Shop и многих различных приложений, использующих эти технологии.

Права на использование материала, расположенного на этой странице https://vivazzi.pro/ru/django-shop/quickstart-running-demo/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор перевода: Артём Мальцев
Ссылка на перевод статьи: <a href="https://vivazzi.pro/ru/django-shop/quickstart-running-demo/">https://vivazzi.pro/ru/django-shop/quickstart-running-demo/</a>

Больше: Правила использования сайта

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.

Комментарии: 8

Denis Alyoshin
Denis Alyoshin

25.02.2018 18:46 #

Добрый вечер, такая проблема. Пользуюсь ubuntu 16.04 установлено virtualenv и virtualenvwrapper при каждом перезапуске окружения теряются все измененные данные в виде созданных страниц и созданных пользователей, в чем может быть причина и как правильно сохранять изменения в virtualenv?

Ответить

Denis Alyoshin
Denis Alyoshin

25.02.2018 19:31 #

а точнее после перезагрузки системы, понимаю что проблема у меня, непонятно в какую сторону, копать? возможно нужно сменить владельца файлов в системе, или создать новую область для окружения неясно

Ответить

Артём Мальцев
Артём Мальцев автор

26.02.2018 2:30 #

Здравствуйте, Денис !

У вас же созданные страницы и пользователи находятся в базе данных? В туториале используется sqlite, который создаётся в папке workdir, например: workdir / polymorphic / db.sqlite3 И после перезагрузки системы он не должен удаляться. Если после перезагрузки он есть, но каким-то образом не получается его прочитать, то да, скорее всего что-то с правами.

Ответить

Denis Alyoshin
Denis Alyoshin

26.02.2018 5:40 #

Спасибо, за быстрый ответ, все делал по инструкции, да бд sqlite создается, сегодня вечером, попробую, скопировать бд перед перезапуском,

Ответить

Denis Alyoshin
Denis Alyoshin

26.02.2018 13:56 #

Артём, спасибо за наводку разобрался, проблема была у меня, только вот несовсем ясно как добавить русскую локализацию, допустим если загружаю базу i18n_polymorphic на вкладке language два языка english deutsch, а как добавить русский?

Ответить

Denis Alyoshin
Denis Alyoshin

26.02.2018 14:01 #

файлы локализации русского присутствуют я так понимаю, надо править конфиг settings.py?

Ответить

Артём Мальцев
Артём Мальцев автор

27.02.2018 4:25 #

Да, верно! Нужно поправить settings.p y Можно добавить, что-то вроде : ``` LANGUAGE_CODE = 'ru'

LANGUAGES = (('ru', 'Russian'), ('en', 'English')) LOCALE_PATHS = ('locale', )

PARLER_LANGUAGES = { 1: ( {'code': 'ru'}, {'code': 'en'}, ), 'default': { 'fallback': 'ru', # defaults to PARLER_DEFAULT_LANGUAGE_CODE 'hide_untranslated': False, # the default; let .active_translations() return fallbacks too. } } ` В мой пример вам нужно вклинить ещё и немецкий. Если не ошибаюсь, для демонстрации интернет-магазина Якоб в основном создавал страницы на немецком, поэтому, если его тупо отключить, то некоторые страницы могут не заработать.

Ответить

Denis Alyoshin
Denis Alyoshin

27.02.2018 4:44 #

Артём, спасибо, понял, буду пробовать.

Ответить

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментирования от своего имени войдите или зарегистрируйтесь на сайте Vuspace

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц