Есть модели
class SpiderCharacteristicType(models.Model): name = models.CharField(_(u'Name'), max_length=255) class SpiderCharacteristic(models.Model): characteristic_type = models.ForeignKey(SpiderCharacteristicType) value = models.CharField(_(u'Value'), max_length=255) item = models.ForeignKey(SpiderItem) class SpiderItem(models.Model): article = models.CharField(_(u'Артикул'), max_length=255, help_text=u'') name = models.CharField(_(u'Наименование'), max_length=255, help_text=u'')
как мне сформировать запрос чтобы проверить наличие записи?
Делаю так, но что то не работает
mydict = {'article__exact': self.article, 'vendor_id__exact': self.vendor_id, } self.features = {} if item[u'Цвет'] != '': self.features['color'] = item[u'Цвет'] if item[u'Размер'] != '': self.features['size'] = item[u'Размер'] mydict['spidercharacteristic__value'] = self.features.values() try: self.obj = SpiderItem.objects.get(**mydict) except ObjectDoesNotExist: print 'error'
Тоесть если проверять одни значения, то он не находит уже созданный товар и заново его создает.
нужно как то проверять (characteristic_type='size', value=2), (characteristic_type='color', value=2)
P.S.
Если поменять
mydict['spidercharacteristic__value'] = self.features.values()
for self.dict_key, self.dict_value in self.features.items(): mydict['spidercharacteristic__characteristic_type']=SpiderCharacteristicType.objects.get(name=self.dict_key) mydict['spidercharacteristic__value'] = self.dict_value