]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
add mappedtable.delete support
authorJonathan Ellis <jbellis@gmail.com>
Sun, 30 Jul 2006 04:04:26 +0000 (04:04 +0000)
committerJonathan Ellis <jbellis@gmail.com>
Sun, 30 Jul 2006 04:04:26 +0000 (04:04 +0000)
lib/sqlalchemy/ext/sqlsoup.py

index 0ff0d39fd4d1de2fc0fa5f41b3dfc796c9ef5c78..2a0fd84c91814388dcfe5ada09c9e7b8e0312efa 100644 (file)
@@ -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)