@emeraldsinner

Как if может мешать запуску функции?

Здравствуйте, писал раньше 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:
                                     ...

Обясните, кто знает, в чем может быть пробема. Спасибо.
  • Вопрос задан
  • 2476 просмотров
Пригласить эксперта
Ответы на вопрос 3
@zedxxx
У вас пляшут отступы. В питоне это очень важно.
Ответ написан
Комментировать
maaGames
@maaGames
Погроммирую программы
Ну так и посмотри, чему model_name равно.
Ответ написан
Комментировать
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Если не удаляется, значит model_name не равно 'sale_apartment'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы