понедельник, 29 апреля 2013 г.

django-lfs: особенности работы со скидками

Текущая стабильная версия 0.7.7

В django-lfs есть два механизма работы со скидками:


  1. назначать скидку каждому товару отдельно в карточке товара
  2. создавать глобальные скидки, которые действуют в зависимости от критериев (например общая сумма покупки в корзине) - данные скидки применяются не к отдельным  товарам ,  а к всему содержимому корзины.
Особенность в том, что при наличии обоих скидок они суммируются.

При использовании данной и более младших версий django-lfs вместе с django >= 1.4 есть проблема с интерфейсом управления -  а именно бага при работе с критериями. Суть ошибки и как  ее решить  я уже описывал здесь.

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

Доработать не трудно. 

  1. добавляем нужное поле в Discount 
  2. добавляем колонку в таблицу discount_discount (если база уже существует) или пересоздаем базу (если старого контента не жалко :)
  3. добавляем нужный html-шаблон для страницы со списком скидок
  4. добавляем view, которая будет рендерить этот шаблон
  5. добавляем url, по которому это view будет "дергаться"
кому нужен патч - пишите.

пятница, 12 апреля 2013 г.

django-lfs: установка на Windows 7

Установка django-lfs  подробно описана здесь

Но у установки под windows есть несколько особенностей, которые не описаны на официальном сайте

Исходные данные:

  • windows7 64 bin
  • python 2.7 , установленный , например в c:\Python27
Требуется установить django-lfs (на текущий момент версия 0.7.7)

  1. качаем инсталлятор http://pypi.python.org/pypi/django-lfs
  2. распаковываем куда нам нужно
  3. cd lfs-installer
  4. качаем правильный bootstrap.py 
  5. python bootstrap.py
  6. качаем win-инсталлятор для библиотеки PIL (так как установщик ругнется на отсутствие батника vcvarsall.bat)
  7. создаем ключ в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath со значением, которое копируем из ключа  HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.7\InstallPath  - без этой манипуляции инсталлятор PIL "ругнется"  Python27 not found
  8. удаляем Pillow из списка зависимостей djanfo-lfs (файл: lfs-installer\eggs\django_lfs-0.7.7-py2.7.egg\EGG-INFO\requires)
  9. устанавливаем PIL
  10. bin/buildout.exe -v
  11. указываем параметры доступа к базе данных (предполагается, что она уже создана)  в settings to lfs_project/settings.py
  12. $ bin/django syncdb
  13. $ bin/django lfs_init
  14. $ bin/django collectstatic
  15. $ bin/django runserver
  16. Открываем дефолтный магазин http://localhost:8000 и торгуем :)