Здравствуйте, писал раньше xml парсер на python, суть такова, что програма парсит файл и заливает инфу в БД, сейчас нужно было добавить еще один тег Status, если значение в теге Withdrawn или closed, то об’ект удаляется с БД, дело в том, что все работает, если парсер имеет такой вид:
for fl in glob.glob("*.xml"):
docy = minidom.parse(fl)
node = docy.documentElement
sobjects = docy.getElementsByTagName("object")
for sobject in sobjects:
sid = sobject.getAttribute("oid")
sstatus = sobject.getAttribute("Status")
object_properties = sobject.getElementsByTagName("object_property")
for object_property in object_properties:
stype = object_property.getAttribute("type")
srealty_type = object_property.getAttribute("realty_type")
if srealty_type == "Nonlive":
continue
model_name = get_model_name(stype, srealty_type)
if (sstatus == 'Withdrawn') or (sstatus == 'closed'):
sale_apartment.objects.get(id=sid).delete()
else:
...
Но стоит мне добавить еще одно условие, и удаление не работает ни в какую:
for fl in glob.glob("*.xml"):
docy = minidom.parse(fl)
node = docy.documentElement
sobjects = docy.getElementsByTagName("object")
for sobject in sobjects:
sid = sobject.getAttribute("oid")
sstatus = sobject.getAttribute("Status")
object_properties = sobject.getElementsByTagName("object_property")
for object_property in object_properties:
stype = object_property.getAttribute("type")
srealty_type = object_property.getAttribute("realty_type")
if srealty_type == "Nonlive":
continue
model_name = get_model_name(stype, srealty_type)
if (sstatus == 'Withdrawn') or (sstatus == 'closed'):
if(model_name == 'sale_apartment'):
sale_apartment.objects.get(id=sid).delete()
if(model_name == 'sale_house'):
sale_house.objects.get(id=sid).delete()
if(model_name == 'sale_stead'):
sale_stead.objects.get(id=sid).delete()
if(model_name == 'rent_apartment'):
rent_apartment.objects.get(id=sid).delete()
if(model_name == 'rent_house'):
rent_house.objects.get(id=sid).delete()
else:
...
Обясните, кто знает, в чем может быть пробема. Спасибо.