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 sqlalchemy@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to