2013-05-23 2 views
2
def delete_entry(self,Order_ID, Item_ID): 
    """Delete an Item_QtyBookEntry identified by Item_ID""" 


    self.d.execute("""Delete from ordered_items Where Order_ID = %s AND Item_ID=%s """ 
         ,(Order_ID,Item_ID)) 
    self.order_entries.remove(x) 

self.order_entries список orderItemEntry объектов .. учитывая ID заказ и Item ID мне нужно, чтобы получить индекс объекта, который имеет оба значения, установленные в й для того, чтобы навсегда удалить элемент из списка. до или после того, как запрос SQL был выполненКак найти индекс объекта в списке объектов с двумя атрибутами?

это только часть всего объекта и его инициализировать класс ... но вот где список инициализации

class OrderItem(object): 
    """Customer will hold ItemEntry objects""" 
    def __init__(self): 
     # Initialize our entries list 
     self.order_entries = [] 
+0

как определяется order_entries? – karthikr

+0

Нет простого случайного доступа по атрибутам объекта, если вы не настроите тип сопоставления - я не вижу, как вы можете сделать лучше, чем повторять через свой список, сравнивая атрибуты, пока не найдете нужный вам индекс. –

+0

определение списка добавлено –

ответ

1

так что вы просто хотите удалить запись вы удалили из базы данных из своего списка?

self.order_entries = [x for x in self.order_entries 
         if x.Order_ID != Order_ID or x.Item_ID != Item_ID] 

вместо self.order_entries.remove(x)

+0

hmmmm, чтобы этот конкретный фрагмент был помещен в функцию delete_entry? –

+0

@SeanPerez да, а не ваш другой удалить из логики списка – cmd

+0

спасибо. просто подтвердил удаление предмета: D –

Смежные вопросы