From: Jonathan Ellis Date: Sun, 30 Jul 2006 04:04:26 +0000 (+0000) Subject: add mappedtable.delete support X-Git-Tag: rel_0_2_7~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0774a9f220bcc36c3ee96286d5049b60ef7f188d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git add mappedtable.delete support --- diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py index 0ff0d39fd4..2a0fd84c91 100644 --- a/lib/sqlalchemy/ext/sqlsoup.py +++ b/lib/sqlalchemy/ext/sqlsoup.py @@ -65,7 +65,8 @@ statement when you flush.) To finish covering the basics, let's insert a new loan, then delete it: - >>> db.loans.insert(book_id=db.books.selectfirst(db.books.c.title=='Regional Variation in Moss').id, user_name=user.name) + >>> book_id = db.books.selectfirst(db.books.c.title=='Regional Variation in Moss').id + >>> db.loans.insert(book_id=book_id, user_name=user.name) MappedLoans(book_id=2,user_name='Bhargan Basepair',loan_date=None) >>> db.flush() @@ -73,6 +74,15 @@ To finish covering the basics, let's insert a new loan, then delete it: >>> db.delete(loan) >>> db.flush() +You can also delete rows that have not been loaded as objects. Let's do our insert/delete cycle once more, +this time using the loans table's delete method: + >>> db.loans.insert(book_id=book_id, user_name=user.name) + MappedLoans(book_id=2,user_name='Bhargan Basepair',loan_date=None) + >>> db.flush() + + >>> db.loans.delete(db.loans.c.book_id==2).execute() # doctest: +ELLIPSIS + <...> + Joins ===== @@ -190,6 +200,8 @@ class TableClassType(type): if attr == '_mapper': # called during mapper init raise AttributeError() + if attr in ['delete']: + return getattr(cls._table, attr) return getattr(cls._mapper, attr)