summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Ellis <jbellis@gmail.com>2006-07-30 04:04:26 +0000
committerJonathan Ellis <jbellis@gmail.com>2006-07-30 04:04:26 +0000
commit0774a9f220bcc36c3ee96286d5049b60ef7f188d (patch)
tree1533273920740f8e48a085966d22770b47df9250
parentb8895c5ffc20d35f5210686e3bf867b3c0fe6fe7 (diff)
downloadsqlalchemy-0774a9f220bcc36c3ee96286d5049b60ef7f188d.tar.gz
add mappedtable.delete support
-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)