oh, right. Column objects only work when you say insert().values(**dict).
MikeCo wrote: > > Using 0.5.0rc4 doesn't seem to do that. or what am I doing wrong? > > The test, http://pastebin.com/fd0653b0 , looks like when using the > Column object, the values inserted are all None (test 1). When the key > is the fully qualified "table.column", the value inserted is always > the default value for the column (test 3). It only works correct when > the key is the string for the unqualified column name (tests 2 and 4). > > > On Nov 24, 10:37 am, "Michael Bayer" <[EMAIL PROTECTED]> wrote: >> the actual Column object or its "key" can be placed in the dict. >> >> MikeCo wrote: >> >> > Oops, not quite right. str(table.c.colname) returns 'table.colname", >> > and that doesn't work right as dictionary key. You need "col" only as >> > dictionary key. >> >> >http://pastebin.com/fd0653b0 has some tests >> >> > Interesting question is does SA intend that "table.colname" work in >> > the dictionary definition? >> >> > -- >> > Mike >> >> > On Nov 23, 8:58 am, MikeCo <[EMAIL PROTECTED]> wrote: >> >> Your dictionary key CartItemTable.c.colname is an instance of class >> >> Column, The dictionary keys need to be strings. Use str >> >> (CartItemTable.c.colname) to get the string name of the column and it >> >> should work. >> >> >> >>> CartItemTable.c.userId >> >> >> Column('userId', Integer(), ForeignKey('User.userId'), >> >> table=<CartItem>, primary_key=True, nullable=False)>>> >> >> str(CartItemTable.c.userId) >> >> >> 'CartItem.userId' >> >> >> -- >> >> Mike >> >> >> On Nov 23, 8:12 am, "Petr Kobalíèek" <[EMAIL PROTECTED]> >> wrote: >> >> >> > Hi devs, >> >> >> > I don't understand one thing: >> >> >> > I have table: >> >> >> > CartItemTable = sql.Table( >> >> > "CartItem", meta.metadata, >> >> >> > # Relations >> >> > sql.Column("userId" , sql.Integer , >> >> > sql.ForeignKey("User.userId"), nullable=False, primary_key=True), >> >> > sql.Column("productId" , sql.Integer , >> >> > sql.ForeignKey("Product.productId"), nullable=False, >> >> > primary_key=True), >> >> > sql.Column("variantId" , sql.Integer , >> nullable=True, >> >> > default=None), >> >> >> > # Count of items in shopping cart >> >> > sql.Column("count" , sql.Integer , >> >> > nullable=False, default=1) >> >> > ) >> >> >> > and I want to insert multiple rows to it using sql: >> >> >> > Session().execute( >> >> > CartItemTable.insert(), >> >> > [{ >> >> > CartItemTable.c.userId : self.user.userId, >> >> > CartItemTable.c.productId : item.product.productId, >> >> > CartItemTable.c.variantId : vid(item.variant), >> >> > CartItemTable.c.count : item.count >> >> > } for item in self.items] >> >> > ) >> >> >> > But this not works and I must use this way: >> >> >> > Session().execute( >> >> > CartItemTable.insert(), >> >> > [{ >> >> > "userId" : self.user.userId, >> >> > "productId" : item.product.productId, >> >> > "variantId" : vid(item.variant), >> >> > "count" : item.count >> >> > } for item in self.items] >> >> > ) >> >> >> > Why is not working first syntax, what em I missing ? >> >> >> > Cheers >> >> > - Petr > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---
