summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sqlalchemy/ext/sqlsoup.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py
index 0ff0d39fd..2a0fd84c9 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)