Доброго времени суток.
===========UPD 2(Решено)==========
Нужно было просто дать завершить цикл( метод, потому что этот цикл в функции, которая обгорнутая декоратором @atomic). После завершения этого метода все продукты сохранены.
Пишу небольшой импортер(пока набросок) для импорта товаров на сайт из .csv, хотел потестить и тут же возникает странность. Не сохраняет обект класса. Если все эти операции провести в
./manage.py shell
, то продукт прекрастно создается. Пробовал постмотреть в дебаггере - ничего, просто метод
save()
не сохраняет продукт. В чем может быть проблема?
Использую: Python 2.7 + Django 1.8 + Django-Oscar 1.1. Вот пример ипортера:
num_items = len(CIP)
for i, cip_code in enumerate(CIP):
self.logger.info(" - Updating product({}/{})".format(i + 1, num_items))
if cip_code:
try:
item = Product.all_objects.get(cip=cip_code)
except Product.DoesNotExist:
item = Product(cip=cip_code)
else:
item = Product()
if GTIN[i] != '':
item.gtin = GTIN[i]
if UPC[i] != '':
item.structure = 'child'
parent_product = Product.all_objects.get(upc=UPC[i])
parent_product.structure = 'parent'
parent_product.stockrecords.all().delete()
parent_product.supplyrecord_set.all().delete()
parent_product.save()
item.parent = parent_product
item.title = 'testtest'
item.save()
item.site.add(Site.objects.get(id=2))
if item.parent:
for cat in item.parent.categories.all():
ProductCategory.all_objects.get_or_create(
product=item, category=cat)
else:
try:
category = Category.all_objects.get(name='Uncategorised')
category.site.add(Site.objects.get(id=2))
category.save()
except Category.DoesNotExist:
category = create_from_breadcrumbs('Uncategorised')
category.site.add(Site.objects.get(id=2))
category.save()
ProductCategory.all_objects.get_or_create(
product=item, category=category)
import pdb; pdb.set_trace() # debug yskhlyan
item.save()
==========UPD=========
И еще одно, что я заметил, пока я в pdb, и в цикле иду дальше по продуктах(создаю новые), то предыдущие продукты "типа" есть, но когда выходжу из pdb и наново запускаю импортер то номерация продолжаеться, но продукты, которые были добавлены во время пред запуска импортера - не находит.
Буду очень благодарен за помощь.